如你所见,我已经创建了一个函数,它允许我创建和修改一个向量。现在,我尝试使用def __add__(self, y)将向量相加。然而,我得到了一个IndexError。有没有什么明显的地方,你可以看到我的代码错误,因为我被卡住了。
def __add__(self, y):
self.vector = []
for j in range(len(self.vector)):
self.vector.append(self.vector[j] + y.self.vector[j])
return Vec(self.vector)发布于 2013-12-11 09:37:02
您的代码中存在一些问题:
self.vector = []的时候,你基本上是在清除你的向量。这使得无法将其添加到另一个向量中。return Vec(self.vector)时,您会将一个列表传递给Vec构造函数-但您已将其定义为接受向量长度。以下是解决了这些问题的__add__的可能实现:
def __add__(self, y):
size = len(self.vector)
if size != len(y.vector):
raise ValueError("Vectors must be the same size.")
result = Vec(size)
for j in range(size):
result.vector[j] = self.vector[j] + y.vector[j]
return resulthttps://stackoverflow.com/questions/20508826
复制相似问题