始める無料で始める

== 演算子のオーバーロード

Python の組み込み演算子は便利で、特にクラスのインスタンス同士を比較するときに役立ちます。クラスを作る際には、マジックメソッドを使ってこれらの演算子の動作を変更できます。ここでは、2 つの Computer インスタンスが等しいかどうかを判定するために、== 演算子をオーバーロードします。

この演習はコースの一部です

Python 中級オブジェクト指向プログラミング

コースを見る

演習の手順

  • == 演算子をオーバーロードするマジックメソッドを定義します。
  • そのマジックメソッド内で、selfotherdevice_id 属性を比較し、2 つのインスタンスが等しいかどうかを判定します。
  • pre_upgrade_computerpost_upgrade_computer が等しいかを確認し、結果を出力します。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

class Computer:
  def __init__(self, device_id, storage):
    self.device_id = device_id
    self.storage = storage
  
  # Overload the == operator using a magic method
  def ____(self, other):
    # Return a boolean based on the value of device_id
    ____ self.____ == other.____

pre_upgrade_computer = Computer("Y391Hky6", 256)
post_upgrade_computer = Computer("Y391Hky6", 1024)

# Create two instances of Computer, compare using ==
print(____ == ____)
コードを編集して実行