実行時に演算子をオーバーロードすることは可能ですか?私は次のコード例を試しました:実行時のオーバーロード演算子
class A():
pass
a = A()
a.__eq__ = lambda self, other: False
a == a # this should return False since the __eq__-method should be overloaded but it returns
# True like object.__eq__ would
a.__eq__(a, a) # this returns False just as expected
なぜこのコードは動作しませんか?望ましい行動を達成することは可能ですか?
IIRC、 " dunder "メソッドは常にインスタンスではなく_class_で検索されます。 – mgilson
@mgilsonが正しく、 'A .__ eq__'に代入してみてください – jonrsharpe