为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

哆啦的时光机 2019-06-16 14:28:48
Python中的false=0和True=1是实现细节,还是由语言保证?它能保证False == 0和True == 1,在Python中(假设它们不是由用户重新分配的)?例如,是否以任何方式保证了以下代码始终会产生相同的结果,而不管Python的版本(既有的,也可能是未来的)?0 == False  # True1 == True   # True['zero', 'one'][False]  # is 'zero'如有任何参考文件,将不胜感激!编辑*如许多答复所述,bool继承自int..因此,这个问题可以改写为:“文档是否正式规定程序员可以依赖从整数继承的布尔人,有价值0和1“?”。这个问题与编写健壮的代码有关,这些代码不会因为实现细节而失败!
查看完整描述

3 回答

?
慕的地10843

TA贡献1785条经验 获得超8个赞

在Python2.x中,根本无法保证:

>>> False = 5>>> 0 == FalseFalse

这样就能改变。在Python3.x中,True,false,都不是保留字,因此上述代码将无法工作。

通常,对于布尔值,您应该假设虽然false的整数值总是为0(只要您不改变它,如上面所示),True可以有任何其他值。我不一定要依靠任何保证True==1,但是在Python3.x上,无论发生什么,情况总是如此。


查看完整回答
反对 回复 2019-06-16
  • 3 回答
  • 0 关注
  • 2229 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信