是否可以保证False == 0
和True == 1
在Python中(假设用户没有重新分配它们)?例如,是否以任何方式保证以下代码将始终产生相同的结果,而不管Python是什么版本(既有现有版本,也可能是未来版本)?
0 == False # True
1 == True # True
['zero', 'one'][False] # is 'zero'
任何对官方文档的引用将不胜感激!
Edit:如许多答案所述,bool
继承自int
。因此,可以将问题改写为:“文档是否正式声明程序员可以依赖从整数继承的布尔值,具有0
和1
]的值?”。这个问题与编写不会因为实现细节而失败的健壮代码有关!
是否可以在Python中确保False == 0和True == 1(假设它们没有由用户重新分配)?例如,是否以任何方式保证以下代码将始终产生...
在Python 2.x中,这是不
链接到PEP的讨论Python 2.3中新的布尔类型的链接:for Python 2。
在Python 2.x中,根本无法保证:
非常简单。由于布尔值与将整数评估为布尔值有关,因此只有零给出错误的答案。所有非零值,浮点数,整数(包括负数)或具有的所有内容都将返回true。
只需输入<=
,您会得到int(False)
,如果您键入0
,它将输出int(True)
假是布尔。它具有不同的类型。它是不同于整数的0的对象。