クラスの特殊メソッド 小なりイコール「<=」 __le__
Pythonのクラスにおいて、小なりイコール演算子 <= をカスタマイズするには、__le__ メソッドをクラス内で定義します。この特殊メソッドを実装することで、2つのオブジェクトの大小関係を含む等しい関係(小なりまたは等しい)を定義できます。
以下は、__le__ メソッドを使って小なりイコール演算子 <= をカスタマイズする例です:
python
class MyClass: def __init__(self, value): self.value = value def __le__(self, other): if isinstance(other, MyClass): return self.value <= other.value raise ValueError("Can only compare MyClass instances") # インスタンスを作成 obj1 = MyClass(5) obj2 = MyClass(10) obj3 = MyClass(5) # 小なりイコール演算子を使用 print(obj1 <= obj2) # 結果: True print(obj1 <= obj3) # 結果: True print(obj2 <= obj1) # 結果: False
この例では、MyClass クラス内に __le__ メソッドが定義され、2つの MyClass インスタンスの大小関係を含む等しい関係を比較するために使用されます。obj1 <= obj2 の演算が行われると、__le__ メソッドが呼び出されて、それらのインスタンスの value 属性を比較し、obj1 が obj2 と等しいかまたはそれ以下かどうかを判定します。
__le__ メソッドは、カスタムクラスのオブジェクト同士を比較するために非常に便利です。他の比較演算子に対しても同様に、特殊メソッドを使用してカスタマイズできます。

ディスカッション
コメント一覧
まだ、コメントがありません