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这是合适的复制品吗?相等并不意味着子类关系。编辑:刚刚注意到问题主体超出了标题。