コンテンツにスキップ

Pythonのチュートリアル:「python」キーワードの使い方を簡単に解説

[

カスタムPythonクラスでの演算子および関数のオーバーロード

Pythonでは、+*の演算子をstrオブジェクトに使用した場合、intfloatオブジェクトと比較して異なる動作が観察されるはずです。

# 2つの数を加算
>>> 1 + 2
3
# 2つの文字列を連結
>>> 'Real' + 'Python'
'RealPython'
# 2つの数を乗算
>>> 3 * 2
6
# 文字列を繰り返し
>>> 'Python' * 3
'PythonPythonPython'

このように、異なるクラスのオブジェクトに対して、同じビルトイン演算子や関数が異なる動作を示すことに気付いたことでしょう。これは演算子オーバーロードまたは関数オーバーロードと呼ばれます。この記事では、このメカニズムについて理解を深め、独自のPythonクラスで同じことを行い、オブジェクトをよりPythonicにする方法を理解するのに役立ちます。

次の内容を学びます:

  • Pythonで演算子やビルトインを処理するAPIについて
  • len()などのビルトインの内部の「秘密」
  • クラスを演算子を使用できるようにする方法
  • クラスをPythonのビルトイン関数と互換性のあるものにする方法

さらにボーナスとして、これらの演算子と関数の多くと互換性のあるオブジェクトを持つ例のクラスも紹介します。では、始めましょう!

Pythonのデータモデル

別の場合では、カートに何かを追加したいかもしれません。再び、Pythonに慣れていない人は、アイテムを受け取り、それをカートリストに追加するappend_to_cart()というメソッドを実装することを考えるかもしれません。しかし、+演算子を設定することで、新しいアイテムをカートに追加するようにすることができます。

完全なソースコードと詳細な説明は、元の記事を参照してください。