__init__():定義物件建立後要執行的初始化過程,
__add__():常見的+操作
__sub__():常見的-操作
__mul__():常見的*操作
class Myclass:
def __init__(self, value):
self.data= value
def __add__(self,other):
return Myclass(self.data + other)
def __mul__(self, other):
self.data = self.data * other
def display(self):
print self.data
A = MYCLASS('ABC')
a.display()#'ABC'
B = A+'某某'
b.display()#'abcxyz“,注意__add__返回了新值
A *3
a.display()#'ABCABCABC“,注意__mul__原地實作
其他常用特殊方法(對岸稱运算符重载):
__truediv__():常見的/操作
__eq__():常見的=操作
__del__():析構方法,與__init__相對,在物件被回收前會被執行(因為回收物件的時間不一定,所以不建議用在要求立即性的情況)。
__getattr__():點號運算(獲取屬性),如:X.name
__setattr__():屬性賦值運算,如:X.name='WWJ“
__getitem__():索引運算,X [關鍵],沒有__item__時的的循環迭代器否則__item__()優先。
__setitem__():索引賦值運算,如X [關鍵]=價值
__iter__():迭代環境用於循環,測試,列表,映射
__cmp__():比較,如:X== Y,X> Y
__lt__():小於如:,X<Y
__eq__():等於
__radd__():左側加法,如“ABC”+ X(對象在右側)
__iadd__():實地(增強的)加法,如:X += Y
沒有留言:
張貼留言