在Python中,可以使用bool()
函數將其他數據類型轉換為布爾值
print(bool(42)) # True
print(bool(0)) # False
print(bool(3.14)) # True
print(bool(0.0)) # False
print(bool("hello")) # True
print(bool("")) # False
print(bool([1, 2, 3])) # True
print(bool([])) # False
print(bool((1, 2, 3))) # True
print(bool(())) # False
print(bool({1, 2, 3})) # True
print(bool(set())) # False
print(bool({"key": "value"})) # True
print(bool({})) # False
__bool__()
方法,則該方法的返回值將決定布爾值。如果未定義__bool__()
方法但定義了__len__()
方法,則根據__len__()
方法的返回值是否為零來確定布爾值。如果兩者都未定義,則所有實例將被視為True,除了None
,它將被視為False。class MyClass:
def __init__(self, value):
self.value = value
def __bool__(self):
return bool(self.value)
obj1 = MyClass(42)
obj2 = MyClass(0)
print(bool(obj1)) # True
print(bool(obj2)) # False