类布尔值
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