如何重载Python的__bool__方法?
可能重复:
在python中定义一个类的“boolness”
我认为这应该打印“假”,为什么打印“真”?
>>> class Foo(object): ... def __bool__(self): ... return False ... >>> f = Foo() >>> if f: ... print "True" ... else: ... print "False" ... True >>>
你应该在Python 2.x中定义__nonzero__()
。 它只在Python 3.x中重命名为__bool__()
。 (名字__nonzero__()
实际上早于bool
types的引入多年。)