是否可以在 python 属性上重载运算符?像这样的东西:
class Foo( object ):
@property
def bar( self ): return unfoobar( self._bar )
@bar.setter
def bar( self, baz ): self._bar = foobar( baz )
@bar.__eq__
def bar( self, baz ): return self._bar == foobar( baz )
没有为 _bar 定义一个特殊的类(虽然在这个例子中,这可能是最好的解决方案......)。
请您参考如下方法:
不,运算符应用于属性的值(由属性提供或从 __dict__ 映射或插槽中获取),而不是属性本身.
恐怕你必须返回一个实现了 __eq__ 的特殊包装器并返回它。
