为什么我的布尔值是int的实例?

时间:2018-11-26 14:21:39

标签: python boolean

x的类型为bool。那么,为什么我的代码具有输出True?我是Python的新手。这是怎么回事?

代码:

x = True
print(isinstance(x, int))

输出:

True

2 个答案:

答案 0 :(得分:3)

这是因为boolint的子类。

引用Python Data Model

  

布尔值(bool
  这些代表真值False和True。代表值FalseTrue的两个对象是唯一的布尔对象。 布尔类型是整数类型的子类型,布尔值在几乎所有情况下的行为分别类似于值0和1,唯一的例外是当转换为字符串时,字符串{{ 1}}或"False"分别返回。

回答评论

  

如果您进行了"True",它还会返回True吗?

不。 isinstance(bool, int)TrueFalse instances ,因此是父类bool的实例,但是int本身不是< bool中的em> instance 。作为类,它是int的实例,是type subclass

int

答案 1 :(得分:0)

因为布尔值是整数的子类型。参见docs