如何在Python 2.x中重载Python的__bool__方法?[duplicate]

quhf5bfb  于 2023-01-16  发布在  Python
关注(0)|答案(1)|浏览(99)
    • 此问题在此处已有答案**:

Defining "boolness" of a class in python(3个答案)
15小时前关门了。
我以为这应该打印"假",为什么它打印"真"?

>>> class Foo(object):
...   def __bool__(self):
...     return False
... 
>>> f = Foo()
>>> if f:
...   print "True"
... else:
...   print "False"
... 
True
>>>
atmip9wb

atmip9wb1#

你应该在Python 2.x中定义__nonzero__(),它只是在Python 3.x中被重命名为__bool__()__nonzero__()这个名字实际上比bool类型的引入早了很多年)。

相关问题