【发布时间】:2017-06-02 14:43:29
【问题描述】:
我有一个班级,我自己实现了__add__:
class Point(namedtuple('Point', ['x', 'y', 'z'])):
def __add__(self, other):
return Point(self.x + other.x, self.y + other.y, self.z + other.z)
添加按预期工作:
l = [Point(0,0,0), Point(0,1,2)]
s = l[0]
for a in l[1:]:
s = s + a
但是当我使用内置 sum 时,我收到了一个错误:
s = sum(l)
TypeError: +: 'int' 和 'Point' 的操作数类型不受支持
我的代码有什么问题? sum 不使用__add__ 吗?我还应该覆盖什么?
【问题讨论】:
-
我认为您正在寻找的是“radd”而不是“add”?