我试图了解它是如何__add__工作的:
class MyNum:
def __init__(self,num):
self.num=num
def __add__(self,other):
return MyNum(self.num+other.num)
def __str__(self):
return str(self.num)
Run Code Online (Sandbox Code Playgroud)
如果我把它们放在一个清单中
d=[MyNum(i) for i in range(10)]
Run Code Online (Sandbox Code Playgroud)
这很有效
t=MyNum(0)
for n in d:
t=t+n
print t
Run Code Online (Sandbox Code Playgroud)
但这不是:
print sum(d)
TypeError: unsupported operand type(s) for +: 'int' and 'instance'
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?我怎样才能得到sum()?
UPDATE
我的问题是如何在支持的对象列表上使用总和__add__,需要尽可能保持通用.
python ×1