@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()),