130 字
1 分钟
第13章 正确重载运算符
第13章 正确重载运算符
[toc]
##几个不常用的运算符
这里我们看几个之前没讲过的运算符__neg__,__pos__,__invert__
__neg__是在-v的时候调用__pos__是在+v的时候调用__invert__是在~v的时候调用
看下面的例子:
class Vector(object): def __init__(self, x): self.x = x
def __neg__(self): return "Vector(%d)" % (-self.x)
def __str__(self): return "Vector(%s)" % (str(self.data))
def __iter__(self): return iter(self.data)
def __pos__(self): return "Vector(%d)" % (self.x + 1)
def __invert__(self): return "Vector(%d)" % (~self.x)
if __name__ == "__main__":
v = Vector(1)
print(-v) # Vector(-1) print(+v) # Vector(2) print(~v) # Vector(-2)返回结果:
Vector(-1)Vector(2)Vector(-2)