重载一元运算符 [Python]

对于一个类来说,它的一元运算符要重载为一个方法,它只取得对象引用参数(self)。将一元运算符(比如~)重载为方法后,假定object1是Class类的一个对象,那么一旦解析器遇到以下表达式:

~object1

就会生成以下调用:

object1.__invert__()

操作数object1是要为其调用Class方法__invert__的对象。

一元运算符及其对应的特殊方法
一元运算符
特殊方法
-
__neg__
+
__pos__
~
__invert__