類布林值

Python 2.x <= 2.7

在 Python 2 中,如果要自己定義類的布林值,則需要在類上實現 __nonzero__ 方法。預設情況下,該值為 True。

class MyClass:
    def __nonzero__(self):
        return False

my_instance = MyClass()
print bool(MyClass)       # True
print bool(my_instance)   # False

Python 3.x >= 3.0

在 Python 3 中,使用 __bool__ 而不是 __nonzero__

class MyClass:
    def __bool__(self):
        return False

my_instance = MyClass()
print(bool(MyClass))       # True
print(bool(my_instance))   # False