__mul__()
関数を使用して 2 つのオブジェクトの乗算演算を定義する方法
Python はオブジェクトの動作をカスタマイズするための特別なメソッド (特別な二重下線メソッドまたはマジック メソッド) を多数提供するオブジェクト指向プログラミング言語。このうち、__mul__()
メソッドは、2 つのオブジェクトの乗算演算を定義するために使用できます。この記事では、__mul__()
メソッドを使用してカスタム クラスの乗算演算を定義する方法を学びます。
__mul__()
メソッドの紹介__mul__()
メソッドは Python の特別なメソッドで、2 つのオブジェクトの乗算演算を定義するために使用されます。 2 つのオブジェクトを乗算すると、Python インタープリターは自動的に __mul__()
メソッドを呼び出し、最初のオブジェクトをパラメーターとしてメソッドに渡します。 __mul__()
メソッドは、2 つのオブジェクトを乗算した結果を返す必要があります。
次は、__mul__()
メソッドを使用してカスタム クラスの乗算演算を定義する方法を示す簡単なコード例です。
class Number: def __init__(self, value): self.value = value def __mul__(self, other): if isinstance(other, Number): return Number(self.value * other.value) elif isinstance(other, int) or isinstance(other, float): return Number(self.value * other) else: raise TypeError("Unsupported operand type for *: '{}' and '{}'".format( type(self).__name__, type(other).__name__)) def __repr__(self): return "Number({})".format(self.value) # 创建两个Number对象 num_1 = Number(2) num_2 = Number(3) # 两个Number对象相乘 result_1 = num_1 * num_2 print(result_1) # 输出结果: Number(6) # Number对象和整数相乘 result_2 = num_1 * 4 print(result_2) # 输出结果: Number(8)上記のコードでは、
Number という名前のカスタム クラスを定義し、このクラスに
__mul__() メソッドを実装しました。このメソッドは、乗算される 2 番目のオブジェクトを表す
other パラメーターを受け取ります。
other パラメータのタイプに応じて、異なる乗算ロジックを実装します。
パラメータが
Number オブジェクトの場合, 2 つのオブジェクトの
value を乗算し、新しい
Number オブジェクトを返します。
パラメータが整数または浮動小数点数の場合、
Number オブジェクトの
value にこの数値を乗算して、新しい値を返します。
番号オブジェクト。
パラメーターが別の型のオブジェクトである場合、
TypeError がスローされ、この型の乗算演算がサポートされていないことが示されます。
Number オブジェクトを作成し、それぞれ別の
Number オブジェクトと整数を乗算します。出力には、
Number オブジェクトの乗算演算が正常に定義されたことが示されています。
__mul__() メソッドを使用すると、クラスの乗算演算をカスタマイズできます。 2 番目のオペランドの型を決定することで、さまざまな乗算ロジックを実装できます。カスタム クラスのオブジェクトを乗算すると、Python インタープリターは自動的に
__mul__() メソッドを呼び出し、最初のオブジェクトをパラメーターとしてメソッドに渡します。
以上がPython で __mul__() 関数を使用して 2 つのオブジェクトの乗算演算を定義する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。