1

Pythonクラスで最初のタスクがあります:

  • モジュールを作成するvectors.py
  • クラス定義になりますMyVector
  • コンストラクターは、1 次元配列になる 1 つのパラメーターを受け入れます。
  • get_vector()メソッドは、ベクトルの要素を含む 1 次元配列を返します。
  • 特別なメソッドを使用して、__ mul__(self, other)タイプ MyVector の 2 つのオブジェクトの内積を実装します。出力はスカラー (単一の数値) です。

今では次のようになります。

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)

最初のベクトルがありますが、2 番目のベクトルを初期化するにはどうすればよいですか?

4

1 に答える 1

3

特別なメソッドのotherパラメーターが のインスタンスであると仮定すると、そのインスタンスには、アクセスできるという名前の属性も含まれます。__mul__MyVectorvector

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 []
于 2012-09-30T13:17:40.023 に答える