【发布时间】:2015-03-11 22:44:43
【问题描述】:
我想做这样的事情:
MyClass > 200 < 400
该类实现了__gt__() 和__lt__() 方法,它们都返回self。
class MyClass:
...
def __gt__(self, value):
DoCompareStuff(self, value)
return self
def __lt__(self, value):
DoCompareStuff(self, value)
return self
...
它将执行第一次评估,MyClass > 200,但从不执行第二次评估,MyClass < 400。似乎 Python 正在对返回值做一些事情,比如将其设为 True 或 False。有没有办法做我想做的事情?
【问题讨论】:
-
他们究竟为什么返回self?函数应根据比较结果返回真或假。这样,结果始终为真,除非您将类的布尔值定义为其他值。
标签: python python-2.7 python-3.x