【问题标题】:Why are booleans considered integers? [duplicate]为什么布尔值被认为是整数? [复制]
【发布时间】:2026-01-26 11:40:01
【问题描述】:

Python 将布尔值视为整数。为什么?

>>> boolean = True
>>> isinstance(boolean, int)
True

反转条件并询问 Python 整数是否为布尔值(显然不是),你会得到:

>>> integer = 123
>>> isinstance(integer, bool)
False

【问题讨论】:

  • 您可以在PEP 285 阅读有关采用bool 类型的信息。这应该有助于解决您的许多问题。

标签: python


【解决方案1】:

在文档中:Numeric Types

共有三种不同的数字类型:整数、浮点数和复数。 此外,布尔值是整数的子类型。

TrueFalse 在数值上分别等于 Python 中的 10

因为bool是int的子类,如上所述,isinstance返回true,as documented

isinstance(object, classinfo)

如果 object 参数是 classinfo 参数或其子类的实例,则返回 True

【讨论】: