1. 学ぶ
  2. /
  3. コース
  4. /
  5. Pythonによるオブジェクト指向プログラミング入門

Connected

演習

等価演算のオーバーロード

カスタムクラスの2つのオブジェクトを == で比較すると、Python はデフォルトでオブジェクトが指すメモリ領域だけを比較し、オブジェクト内のデータは比較しません。この挙動を上書きするには、比較する2つのオブジェクトを引数に取り、True か False を返す特別なメソッドをクラスに実装します。2つのオブジェクトが比較されると、このメソッドが暗黙的に呼び出されます。

前の章で使った BankAccount クラスが script.py に用意されています。balance と number の2つの属性と、withdraw() メソッドを持ちます。残高が同じでも、必ずしも同じ口座とは限りませんが、銀行口座には通常「口座番号」があり、口座番号が同じであれば同じ口座と見なすべきです。

指示

100 XP
  • __init__() メソッドを修正して、number という新しい引数を受け取り、新しい number 属性を初期化してください。
  • 2つのオブジェクトの number 属性が等しいかを比較するメソッドを定義してください。