[关闭]
@songying 2018-11-13T18:58:53.000000Z 字数 594 阅读 1133

运算符重载 - 特殊方法

python特殊方法


参考: http://pyzh.readthedocs.io/en/latest/python-magic-methods-guide.html#id4

实现一元运算符和中缀运算符的特殊方法一定不能修改操作数。使用这些运算符的表达式期待结果是新对。只有增量赋值表达式可能会修改第一个操作数(self)

一元运算符重载

一元运算符重载,只需要实现相应的特殊方法,这些特殊方法只有一个参数,self。然后,使用符合所在类的逻辑实现。
不过,要遵守运算符的一个基本规则:始终返回一个新对象。也就是说,不能修改self,要创建并返回合适类型的新实例。

__neg__(self)

实现取负操作-, 例如 -some_object。

__pos__(self)

实现取正操作+,例如 +some_object。

__invert__(self)

实现取反操作符 ~

__abs__(self)

实现内建绝对值函数 abs() 操作。

类型转换运算符

数值操作符

一元操作符

包括: 取正, 取负, 绝对值(实现abs()),取反, 实现round(), 向下取整(实现math.floor()), 向上取整(实现 math.ceil()),

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注