2016-10-16 2 views
0
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 

당신은 또한 당신에게 내 친구를 감사

+0

유형 MyVector의 객체를 반환해야합니다. –

+0

이제 나는 너무 바보 같아. D –