A错误
{} 是空字典(dict),不是空集合。set() 来表示。print(bool(None)) # False print(bool(False)) # False print(bool(0)) # False print(bool(0.0)) # False print(bool(0j)) # False print(bool('')) # False print(bool([])) # False print(bool(())) # False print(bool({})) # False print(bool(set())) # False print(bool(range(0))) # False
虽然上面测试都是False,
但是
bool([]) # False
[] == False # False(不是 True!)
bool(x) 是“真值测试”(truthiness),而 x == False 是“值相等比较” —— 它们是两种完全不同的操作
不同类型的对象(除了数字类型之间如 0 == 0.0)通常不相等,容器类型(如 list、dict)与布尔值 True/False 永远不相等,即使它们的布尔值是 False