== 演算子のオーバーロード
Python の組み込み演算子は便利で、特にクラスのインスタンス同士を比較するときに役立ちます。クラスを作る際には、マジックメソッドを使ってこれらの演算子の動作を変更できます。ここでは、2 つの Computer インスタンスが等しいかどうかを判定するために、== 演算子をオーバーロードします。
この演習はコースの一部です
Python 中級オブジェクト指向プログラミング
演習の手順
==演算子をオーバーロードするマジックメソッドを定義します。- そのマジックメソッド内で、
selfとotherのdevice_id属性を比較し、2 つのインスタンスが等しいかどうかを判定します。 pre_upgrade_computerとpost_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(____ == ____)