正如我在主题中所说,我需要创建可以与其他类相加并相乘的类。下面是预期的结果和代码行为。
v1 = Vector([1, 2, 1, 5]) - class 1 called Vector
v2 = Vector([2, 3, 1, 4]) - class 2 called Vector
# [1+2, 2+3, 1+1, 5+4] - expected sums
v3 = v1 + v2
v3.get_vals()
[3, 5, 2, 9] - expected result
# 1*2 + 2*3 + 1*1 + 5*4 - multiplication
v1 * v2
29
您可以定义__add__
,__mul__
和其他 dunder 方法。
例如:
class Vector:
def __init__(self, arr):
self.arr = list(arr)
def __add__(self, other):
return Vector(a + b for a, b in zip(self.arr, other.arr))
def __mul__(self, other):
return sum(a * b for a, b in zip(self.arr, other.arr))
def get_vals(self):
return self.arr
v1 = Vector([1, 2, 1, 5])
v2 = Vector([2, 3, 1, 4])
v3 = v1 + v2
assert [3, 5, 2, 9] == v3.get_vals()
assert v1 * v2 == 29
我确实建议为此使用诸如numpy之类的软件包,而不是重新发明轮子。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句