#python #class #vector
#python #класс #вектор
Вопрос:
class MyVector:
def __init__(self, vector): # classic init
self.vector = vector
def get_vector(self):
return self.vector
def __mul__(self, other):
for i in range(0, len(self.vector)): #cycle
# if I did scalar_product = (self.vector[i] * other.vector[i]) here,
# it didn't work
scalar_product = (self.vector[i] * other.vector[i])
return (scalar_product)
if __name__ == "__main__": #just testing program
vec1 = MyVector([1, 2, 3, 4])
vec2 = MyVector([4, 5, 6, 7])
print(vec1.get_vector())
print(vec2.get_vector())
scalar_product = vec1*vec2
print(scalar_product) # shows only 4*7 but not others
Что мне нужно сделать, чтобы заставить эту программу работать? Теперь он просто умножает последние цифры, например 4 * 7, но не остальные.
Ответ №1:
Сначала вам нужно определить свой скалярный продукт:
def __mul__(self, other):
scalar_product = 0 # or 0.0
for i in range(0, len(self.vector)):
scalar_product = self.vector[i] * other.vector[i]
return scalar_product
Вы также должны возвращать объект типа MyVector
Комментарии:
1. Теперь я чувствую себя таким тупым: D