可能性のある複製:
Pythonでクラスの「ブール値」を定義する
これは「False」と印刷する必要があると思いましたが、なぜ「True」と印刷するのですか?
>>> class Foo(object):
... def __bool__(self):
... return False
...
>>> f = Foo()
>>> if f:
... print "True"
... else:
... print "False"
...
True
>>>
Python 2.xで__nonzero__()
を定義する必要があります。これは、Python 3.で__bool__()
に名前が変更されただけです。 x。(名前__nonzero__()
は、実際にはbool
型の導入より何年も前から存在しています。)