第13章 正确重载运算符
<!-- TOC -->
<!-- /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)
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。