12

是否在 Python 中明确定义了 True 和 False 的顺序,还是将其保留为实现细节?

在控制台中,我在 True 之前看到了 False 排序……但我不知道这是否是我应该依赖的行为。

(我确定有一些关于此的 Python 文档,但我找不到它......)

4

2 回答 2

22

http://docs.python.org/2/reference/datamodel.html#the-standard-type-hierarchy

布尔值:这些代表真值 False 和 True。表示值 False 和 True 的两个对象是唯一的布尔对象。Boolean 类型是纯整数的子类型,在几乎所有上下文中,Boolean 值的行为分别类似于值 0 和 1,例外是当转换为字符串时,返回字符串“False”或“True”,分别。

这告诉我,python 语言需要False < True, False == 0, True == 1, True != 2.

Python 3中也保留了相同的措辞。

于 2012-11-13T00:21:28.920 回答
2

我们可以使用 Python REPL 显示 bool 是可排序的,并且False是较低的值:

>>> sorted([False, True, True, False, True])
[False, False, True, True, True]
于 2019-12-02T00:01:03.203 回答