python如何定义i_python如何新定义运算符?

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)重载~(求反)

你可能感兴趣的:(python如何定义i)