130 字
1 分钟
第13章 正确重载运算符
2020-03-30

第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)
第13章 正确重载运算符
https://blog.zhequtao.com/posts/python/流畅的python/第13章正确重载运算符/
作者
阿俊
发布于
2020-03-30
许可协议
CC BY-NC-SA 4.0

相关阅读