更新時(shí)間:2023-02-28 來源:黑馬程序員 瀏覽量:
Python中的魔法方法(Magic Methods),也稱為雙下劃線方法(Dunder Methods),是特殊方法,其名稱以雙下劃線開頭和結(jié)尾,例如__init__、__str__、__add__等。這些方法提供了一種使Python對(duì)象能夠使用內(nèi)置函數(shù)和語言結(jié)構(gòu)的方式。
以下是一些常用的Python魔法方法:
__init__(self, ...): 初始化一個(gè)對(duì)象,在創(chuàng)建對(duì)象時(shí)調(diào)用。
__str__(self):返回一個(gè)描述對(duì)象的字符串,可以使用str(obj)調(diào)用。
__repr__(self): 返回一個(gè)表示對(duì)象的字符串,可以使用repr(obj)調(diào)用。
__len__(self):返回對(duì)象的長度,可以使用len(obj)調(diào)用。
__getitem__(self, key):獲取對(duì)象中指定鍵的值,可以使用obj[key]調(diào)用。
__setitem__(self, key, value):設(shè)置對(duì)象中指定鍵的值,可以使用obj[key] = value調(diào)用。
__delitem__(self, key): 刪除對(duì)象中指定鍵的值,可以使用del obj[key]調(diào)用。
__iter__(self):返回一個(gè)可迭代對(duì)象,可以使用for ... in obj循環(huán)迭代調(diào)用。
__next__(self):返回下一個(gè)迭代器對(duì)象,可以使用next(obj)調(diào)用。
__add__(self, other): 定義加法運(yùn)算符,可以使用obj1 + obj2調(diào)用。
__sub__(self, other):定義減法運(yùn)算符,可以使用obj1 - obj2調(diào)用。
__mul__(self, other):定義乘法運(yùn)算符,可以使用obj1 * obj2調(diào)用。
__div__(self, other):定義除法運(yùn)算符,可以使用obj1 / obj2調(diào)用。
__eq__(self, other): 定義相等運(yùn)算符,可以使用obj1 == obj2調(diào)用。
__ne__(self, other):定義不等運(yùn)算符,可以使用obj1 != obj2調(diào)用。
__lt__(self, other): 定義小于運(yùn)算符,可以使用obj1 < obj2調(diào)用。
__gt__(self, other):定義大于運(yùn)算符,可以使用obj1 > obj2調(diào)用。
通過實(shí)現(xiàn)這些魔法方法,可以讓自定義的Python對(duì)象具有類似內(nèi)置類型的行為和特性。