ホームページ バックエンド開発 Python チュートリアル Python で __add__() 関数を使用して 2 つのオブジェクトの加算演算を定義する方法

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

Aug 22, 2023 am 11:12 AM
物体 __add__関数 追加

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

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

Python では、演算子をオーバーロードしてオブジェクトをカスタマイズできます 対応する計算関数を追加します。 __add__() 関数は、2 つのオブジェクトの加算演算を定義するために使用される特別なメソッドの 1 つです。この記事では、__add__() 関数を使用してオブジェクトの加算操作を実装する方法を学びます。

Python では、クラスを定義することでカスタム オブジェクトを作成できます。 2 次元ベクトルを表す「Vector」というクラスがあるとします。 2 つのベクトル オブジェクトを追加できるようにしたいと考えています。まず、Vector クラスで __add__() 関数を定義する必要があります。

次は、単純な Vector クラスの例です。

class Vector:
    def __init__(self, x, y):
        self.x = x
        self.y = y
    
    def __add__(self, other):
        # 定义两个向量相加的逻辑
        return Vector(self.x + other.x, self.y + other.y)
ログイン後にコピー

上記のコードでは、Vector クラスを定義し、初期化メソッドで 2 つのパラメーター x と y を受け取ります。次に、ベクトル加算のロジックを実装する __add__() 関数をオーバーロードしました。 2 つの Vector オブジェクトを使用して x コンポーネントと y コンポーネントをそれぞれ追加し、結果を新しい Vector オブジェクトとして返します。

次に、2 つの Vector オブジェクトを作成して追加します:

v1 = Vector(1, 2)
v2 = Vector(3, 4)
result = v1 + v2
print(result.x, result.y)
ログイン後にコピー

出力結果は次のとおりです: 4 6。ご覧のとおり、__add__() 関数を使用して 2 つの Vector オブジェクトの加算演算を実装することができました。

__add__() 関数の使用に加えて、他の特別なメソッドを使用してさまざまな計算関数を定義することもできます。たとえば、__sub__() 関数を使用して 2 つのオブジェクトの減算演算を定義し、__mul__() 関数を使用して 2 つのオブジェクトの乗算演算を定義します。これらの特別なメソッドを定義することで、カスタム オブジェクトにさらに多くのコンピューティング機能を持たせることができます。

Python では、特別なメソッドの名前は二重アンダースコアで始まり、終わります。この命名規則は、その特別な用途を識別します。これらの特別なメソッドをオーバーロードすることにより、カスタム オブジェクトにさらに多くのコンピューティング関数を追加し、コードをより簡潔で理解しやすくすることができます。

要約すると、Python の __add__() 関数を使用して 2 つのオブジェクトの加算演算を定義できます。この特別なメソッドをオーバーロードすることにより、対応するロジックを関数に実装できます。このメカニズムにより、さまざまなコンピューティング関数をカスタム オブジェクトに追加できるようになり、コードがより柔軟になり、保守が容易になります。

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

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHP の json_encode() 関数を使用して配列またはオブジェクトを JSON 文字列に変換する PHP の json_encode() 関数を使用して配列またはオブジェクトを JSON 文字列に変換する Nov 03, 2023 pm 03:30 PM

PHP の json_encode() 関数を使用して配列またはオブジェクトを JSON 文字列に変換する

ソースコードの探索: Python ではオブジェクトはどのように呼び出されますか? ソースコードの探索: Python ではオブジェクトはどのように呼び出されますか? May 11, 2023 am 11:46 AM

ソースコードの探索: Python ではオブジェクトはどのように呼び出されますか?

PHP の Request オブジェクトとは何ですか? PHP の Request オブジェクトとは何ですか? Feb 27, 2024 pm 09:06 PM

PHP の Request オブジェクトとは何ですか?

MySQLクエリ結果の配列をオブジェクトに変換するにはどうすればよいですか? MySQLクエリ結果の配列をオブジェクトに変換するにはどうすればよいですか? Apr 29, 2024 pm 01:09 PM

MySQLクエリ結果の配列をオブジェクトに変換するにはどうすればよいですか?

Python の __contains__() 関数を使用してオブジェクトの包含操作を定義する Python の __contains__() 関数を使用してオブジェクトの包含操作を定義する Aug 22, 2023 pm 04:23 PM

Python の __contains__() 関数を使用してオブジェクトの包含操作を定義する

Python の __le__() 関数を使用して、2 つのオブジェクトの小なり等しい比較を定義します。 Python の __le__() 関数を使用して、2 つのオブジェクトの小なり等しい比較を定義します。 Aug 21, 2023 pm 09:29 PM

Python の __le__() 関数を使用して、2 つのオブジェクトの小なり等しい比較を定義します。

PHP における配列とオブジェクトの違いは何ですか? PHP における配列とオブジェクトの違いは何ですか? Apr 29, 2024 pm 02:39 PM

PHP における配列とオブジェクトの違いは何ですか?

Javascriptオブジェクトの5つのループトラバースメソッドを詳しく解説 Javascriptオブジェクトの5つのループトラバースメソッドを詳しく解説 Aug 04, 2022 pm 05:28 PM

Javascriptオブジェクトの5つのループトラバースメソッドを詳しく解説

See all articles