gpt4 book ai didi

python - 在 python 属性上重载运算符

转载 作者:太空宇宙 更新时间:2023-11-04 06:09:06 25 4
gpt4 key购买 nike

是否可以在 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__ 的特殊包装器并返回它。

关于python - 在 python 属性上重载运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19959359/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com