Неклассовым решением этой задачи было бы следующее:
Код: Выделить всё
#import numpy as np
vv1 = np.array([11, 21, 11, 51])
vv2 = np.array([21, 31, 11, 41])
#adding
vv3 = vv1 + vv2
print("v3=" , v3)
vv= vv1 * vv2
vv4=sum(vv)
print("vv4=" , vv4)
Код: Выделить всё
TypeError
Traceback (most recent call last)
Cell In[2], line 21
19 vvt= Vector
20 vvt.__add__(vv1,vv2)
---> 21 vvt.__mul__(vv1,vv2)
Cell In[2], line 14, in Vector.__mul__(self, w)
13 def __mul__(self, w=1):
---> 14 return self.vv1*w.vv1 + self.vv2*w.vv2
TypeError: can't multiply sequence by non-int of type 'list'
Код: Выделить всё
class Vector:
def __init__(self, vv1=0.0, vv2=0.0):
self.vv1 = vv1
self.vv2 = vv2
def __str__(self):
return "[{}, {}]".format(self.vv1, self.vv2)
def __add__(self, w=1):
return Vector(self.vv1 + w.vv1, self.vv2 + w.vv2)
def __mul__(self, w=1):
return self.vv1*w.vv1 + self.vv2*w.vv2
vv1 = Vector([11, 21, 11, 51])
vv2 = Vector([21, 31, 11, 41])
vvt= Vector
vvt.__add__(vv1,vv2)
vvt.__mul__(vv1,vv2)
Я пытался написать новый класс Vector, но этого не произошло. работает как положено.
Подробнее здесь: https://stackoverflow.com/questions/793 ... f-a-vector