Python 为什么我的布尔值是int的实例?
Python 为什么我的布尔值是int的实例?,python,boolean,Python,Boolean,x属于bool类型。那么为什么我的代码有输出True?我是Python新手。这是怎么回事 代码: 输出: True 这是因为bool是int的一个子类 >>> isinstance(bool, int) False >>> isinstance(bool, type) True >>> issubclass(bool, int) True 引述: 布尔函数() 这些代表了真值False和True。表示值False和True的两个对象是唯一
x
属于bool
类型。那么为什么我的代码有输出True
?我是Python新手。这是怎么回事
代码:
输出:
True
这是因为
bool
是int
的一个子类
>>> isinstance(bool, int)
False
>>> isinstance(bool, type)
True
>>> issubclass(bool, int)
True
引述:
布尔函数()这些代表了真值False和True。表示值
False
和True
的两个对象是唯一的布尔对象布尔类型是整数类型的子类型,在几乎所有上下文中,布尔值的行为分别类似于值0和1,例外情况是当转换为字符串时,将分别返回字符串“False”
或“True”
对评论的答复:
如果您执行了isinstance(bool,int),它是否也会返回True
否。True
和False
是bool
的实例,因此是父类int
的实例,但bool
本身不是int
的实例。作为一个类,它是type
的一个实例,也是int
的一个子类
>>> isinstance(bool, int)
False
>>> isinstance(bool, type)
True
>>> issubclass(bool, int)
True
因为布尔是整数的一个子类型。请参阅。如果您使用isinstance(bool,int),它是否也会返回True?@dfundako否,请参阅edit.thax dfundako…..确实没有添加任何已在此处发布的答案。同意,我们必须同时发布。请随意删除。@Chris_Rands这是合适的复制品吗?相等并不意味着子类关系。编辑:刚刚注意到问题主体超出了标题。