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