【发布时间】:2011-02-22 18:25:01
【问题描述】:
我想了解__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)
如果我把它们放在一个列表中
d=[MyNum(i) for i in range(10)]
这行得通
t=MyNum(0)
for n in d:
t=t+n
print t
但这不是:
print sum(d)
TypeError: unsupported operand type(s) for +: 'int' and 'instance'
我做错了什么?如何让 sum() 工作?
我的问题是如何在支持__add__ 的对象列表上使用总和,需要使其尽可能通用。
【问题讨论】:
标签: python