python中的自加运算符是“+=”,可以采用__iadd__()重载,其必须返回self。
其他一系列二元运算符、一元运算符重载定义如下:
二元操作符:
__*add__(self,obj)重载+(加:self + obj。iadd则为自加:self = self + obj。radd则为右加:obj + self)
__*sub__(self,obj)重载-
__*mul__(self,obj)重载*
__*div__(self,obj)重载/
__*truediv__(self,obj)重载/
__*floordiv__(self,obj)重载//(地板除)
__*mod__(self,obj)重载%(取余)
__*sdivmod__(self,obj)重载divmod()
__*pow__(self,obj[,mod])重载**和pow()(self**obj % mod)
__*lshift__(self,obj)重载<<
__*rshift__(self,obj)重载>>
__*and__(self,obj)重载&(按位与)
__*or__(self,obj)重载|(按位或)
__*xor__(self,obj)重载^(按位异或)
注:原位操作符重载时,必须return self。
一元操作符:
__neg__(self)重载-(负)
__pos__(self)重载+(正)
__abs__(self)重载abs()
__invert__(self)重载~(求反)