Python中有一些特殊方法,稱之為“魔方方法”(Magic Method)。這些方法以雙下劃線開頭和結(jié)尾,在Python中被廣泛使用。這些方法可以在自定義類中定義,以便進(jìn)行自定義操作。
class MyClass: def __init__(self, name): self.name = name def __str__(self): return f"My name is {self.name}." def __eq__(self, other): return self.name == other.name a = MyClass("John") b = MyClass("Mary") c = MyClass("John") print(a) # 輸出:My name is John. print(a == b) # 輸出:False print(a == c) # 輸出:True
以上是一個基本例子,用到了三個魔方方法:
__init__
是魔方方法中最常見的一個,它在類實例化時被調(diào)用。__str__
方法在使用print函數(shù)時被調(diào)用,返回一個字符串表示對象。__eq__
方法用來比較兩個對象的相等性。
除此之外,Python的魔方方法還有很多,包括:
__len__
:定義len函數(shù)的行為。__add__
和__sub__
:定義加法和減法的行為。__lt__
和__gt__
:定義小于和大于的行為。__call__
:讓對象可以像函數(shù)一樣調(diào)用。__repr__
:定義repr函數(shù)的行為。__getitem__
和__setitem__
:定義下標(biāo)操作的行為。__enter__
和__exit__
:用于定義上下文管理器。
使用魔方方法能夠讓代碼更加簡潔明了,并且方便代碼的重用。實際上,Python內(nèi)置了很多魔方方法,通過自定義類來重寫這些方法,可以定制出符合自己需求的對象。