在 Python2 中是没有布尔型的,它用数字 0 表示 False,用 1 表示 True。
Python3 中,bool 是 int 的子类,True 和 False 可以和数字相加, True==1、False==0 会返回 True,但可以通过 is 来判断类型。
print(bool.mro()) # 查看bool对应的继承关系
print(issubclass(bool, int)) # 检测bool是不是int的子类
print(True == 1) # == 用于判断引用变量的值是否相等。
print('True + 1 = ', True + 1)
print(False == 0)
print('False + 1 = ', False + 1)
print(1 is True) # is 用于判断两个变量引用对象是否为同一个,即来自同一个内存地址
print(id(True))
print(id(1))
print(0 is False)
print(isinstance(bool, int))
输出如下:
[<class 'bool'>, <class 'int'>, <class 'object'>]
True
True
True + 1 = 2
True
False + 1 = 1
False
140719784515408
140719784798000
False
False