是否可以保证False == 0
和True == 1
,在Python中(假设用户没有重新分配它们)?例如,是否以任何方式保证以下代码将始终产生相同的结果,而不管Python的版本如何(既有现有版本,也可能是未来版本)?
0 == False # True
1 == True # True
['zero', 'one'][False] # is 'zero'
任何对官方文档的引用将不胜感激!
编辑:如许多答案所述,bool
继承自int
。因此,可以将问题改写为:“文档是否正式声明程序员可以依赖从整数(带有值0
和1
?)继承的布尔值 ”。这个问题与编写不会因为实现细节而失败的健壮代码有关!
sum(bool_list)
。否则,您将不得不编写sum(1 for x bool_list if x)
。
bool_list.count(True)
的比较明确。它的速度也快3倍……:)