Python第二类初始化

时间:2012-09-30 13:15:07

标签: python

我在python类上有我的第一个任务:

  • 创建模块vectors.py
  • 这将是一个类定义MyVector
  • 构造函数将接受一个参数,该参数将是一维数组。
  • get_vector()方法返回包含向量元素的一维数组。
  • 使用特殊方法__ mul__(self, other)实现MyVector类型的两个对象的点积。输出是标量(单个数字)。

现在看来是这样的:

class MyVector:
    def __init__(self,vector=[]):
        self.vector=vector

    def get_vector(self):
        return (self.vector)        

    def __mul__(self,other):
        dot=sum(p*q for p,q in zip(self.vector, WHAT IS HERE?))
        return(dot)

我有第一个矢量,但我怎么能初始化第二个?

1 个答案:

答案 0 :(得分:3)

如果您认为特殊other方法的__mul__参数是MyVector的实例,那么该实例还将具有名为vector的属性,您可以访问:

def __mul__(self,other):
    dot=sum(p*q for p,q in zip(self.vector, other.vector))
    return (dot)

并且不要在函数参数中使用[]作为默认值,请使用以下内容:

 def __init__(self,vector=None):
    self.vector=vector if vector else []