Pythonのチュートリアル:「python」キーワードの使い方を簡単に解説
カスタムPythonクラスでの演算子および関数のオーバーロード
Pythonでは、+
や*
の演算子をstr
オブジェクトに使用した場合、int
やfloat
オブジェクトと比較して異なる動作が観察されるはずです。
このように、異なるクラスのオブジェクトに対して、同じビルトイン演算子や関数が異なる動作を示すことに気付いたことでしょう。これは演算子オーバーロードまたは関数オーバーロードと呼ばれます。この記事では、このメカニズムについて理解を深め、独自のPythonクラスで同じことを行い、オブジェクトをよりPythonicにする方法を理解するのに役立ちます。
次の内容を学びます:
- Pythonで演算子やビルトインを処理するAPIについて
len()
などのビルトインの内部の「秘密」- クラスを演算子を使用できるようにする方法
- クラスをPythonのビルトイン関数と互換性のあるものにする方法
さらにボーナスとして、これらの演算子と関数の多くと互換性のあるオブジェクトを持つ例のクラスも紹介します。では、始めましょう!
Pythonのデータモデル
別の場合では、カートに何かを追加したいかもしれません。再び、Pythonに慣れていない人は、アイテムを受け取り、それをカートリストに追加するappend_to_cart()
というメソッドを実装することを考えるかもしれません。しかし、+
演算子を設定することで、新しいアイテムをカートに追加するようにすることができます。
完全なソースコードと詳細な説明は、元の記事を参照してください。