- 有两个永不改变的值 True 或 False
- 布尔型是整型的子类,但是不能再被继承而生成它的子类
- 没有 __nonzero__() 方法的读写的默认值是 True
- 对于值为零的任何数字或空集(空列表,空元组和空字典等)在 Python 中布尔值都是 False
- 在数学运算中,Boolean 值的 True 和 False 分别对应与 1 和 0
"""无__nonzero__()""" class A: pass print 'A is not zero' if A() else 'A is zero' #output: A is not zero a = A() print bool(a) #output: True print bool(A) #output: True print bool(A()) #output: True
"""重载 __nonzero__""" class B: def __nonzero__(self): print 'B.__nonzero__()' return False if __name__ == '__main__': print 'B is not zero' if B() else 'B is zero' b = B() #output: B.__nonzero__(), B is zero print bool(b) #output: B.__nonzero__(), False print bool(B) #output: True print bool(B()) #output: B.__nonzero__(),False