当我写-b
时,python调用了什么方法?我怀疑它是__sub__
,但我不明白当我们只有变量(b
)时会发生什么。是0.__sub__(b)
执行了吗?
答案 0 :(得分:4)
您正在寻找否定__neg__
运营商:
operator.neg(obj) operator.__neg__(obj) Return obj negated (-obj).
答案 1 :(得分:2)
当对象使用一元否定运算符时,python会调用它的__neg__
方法。
这是一个简单的示例,展示了如何使用它并进行自定义
>>> class B(int):
... def __neg__(self):
... return self*2
...
>>> b = B(3)
>>> b
3
>>> -b
6