Python で __mul__() 関数を使用して 2 つのオブジェクトの乗算演算を定義する方法

王林
リリース: 2023-08-22 16:18:25
オリジナル
1256 人が閲覧しました

Python で __mul__() 関数を使用して 2 つのオブジェクトの乗算演算を定義する方法

__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 パラメータのタイプに応じて、異なる乗算ロジックを実装します。

  • other パラメータが Number オブジェクトの場合, 2 つのオブジェクトの value を乗算し、新しい Number オブジェクトを返します。
  • other パラメータが整数または浮動小数点数の場合、Number オブジェクトの value にこの数値を乗算して、新しい値を返します。 番号オブジェクト。
  • other パラメーターが別の型のオブジェクトである場合、TypeError がスローされ、この型の乗算演算がサポートされていないことが示されます。
最後に、サンプル コードの最後で 2 つの

Number オブジェクトを作成し、それぞれ別の Number オブジェクトと整数を乗算します。出力には、Number オブジェクトの乗算演算が正常に定義されたことが示されています。

概要

__mul__() メソッドを使用すると、クラスの乗算演算をカスタマイズできます。 2 番目のオペランドの型を決定することで、さまざまな乗算ロジックを実装できます。カスタム クラスのオブジェクトを乗算すると、Python インタープリターは自動的に __mul__() メソッドを呼び出し、最初のオブジェクトをパラメーターとしてメソッドに渡します。

以上がPython で __mul__() 関数を使用して 2 つのオブジェクトの乗算演算を定義する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート