我有一个班级
class Vector():
def __init__(self, *args):
self.coords = list(args)
def __add__(self, other):
temp = []
for i in range(len(self)):
tmp.append(self[i] + other[i])
print(str(tmp))
return Vector(*tmp)
def __getitem__(self, key):
return self.coords[key]
目标是使Vector类对象的行为与向量相似。我想做这样的加法操作
list = [0, 1, 2, 3]
v1 = Vector(3, 2, 1, 0)
result1 = v1 + list
result2 = list + v1
得到这个结果:
result1 = Vector(3, 3, 3, 3)
result2 = Vector(3, 3, 3, 3)
当我定义 getitem 方法时,Vector类开始支持索引并且result1
是正确的。但是result 2
会返回TypeError: can only concatenate list (not "Vector") to list
。我没有想法应该解决这个问题。