Python中的false=0和True=1是实现细节,还是由语言保证?

Python中的false=0和True=1是实现细节,还是由语言保证?

它能保证False == 0True == 1,在Python中(假设它们不是由用户重新分配的)?例如,是否以任何方式保证了以下代码始终会产生相同的结果,而不管Python的版本(既有的,也可能是未来的)?

0 == False  # True1 == True   # True['zero', 'one'][False]  # is 'zero'

如有任何参考文件,将不胜感激!

编辑*如许多答复所述,bool继承自int..因此,这个问题可以改写为:“文档是否正式规定程序员可以依赖从整数继承的布尔人,有价值01“?”。这个问题与编写健壮的代码有关,这些代码不会因为实现细节而失败!


哆啦的时光机
浏览 2230回答 3
3回答

慕的地10843

在Python2.x中,根本无法保证:>>> False = 5>>> 0 == FalseFalse这样就能改变。在Python3.x中,True,false,都不是保留字,因此上述代码将无法工作。通常,对于布尔值,您应该假设虽然false的整数值总是为0(只要您不改变它,如上面所示),True可以有任何其他值。我不一定要依靠任何保证True==1,但是在Python3.x上,无论发生什么,情况总是如此。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python