难道保证False == 0和True == 1,在Python(假设他们没有被用户重新分配)?例如,无论Python的版本(现有的,可能的,未来的版本)是什么,它是否以任何方式保证以下代码将始终产生相同的结果?
0 == False # True
1 == True # True
['zero', 'one'][False] # is 'zero'
Run Code Online (Sandbox Code Playgroud)
任何对官方文档的引用都将非常感谢!
编辑:正如许多答案所述,bool继承自int.因此,问题可以改写为:"文档是否正式表明程序员可以依赖于从整数继承的布尔值,以及值0和1?".这个问题与编写由于实现细节而不会失败的健壮代码有关!
在JavaScript中,有严格的比较操作符op1 === op2和op1 !== op2将比较这两个类型和值.有没有一种pythonic方式来实现同样的事情?
到目前为止,我只能提出以下凌乱的条件:
isinstance(op1, type(op2)) and isinstance(op2, type(op1)) and op1 == op2
Run Code Online (Sandbox Code Playgroud)
和
not isinstance(op1, type(op2)) or not isinstance(op2, type(op1)) or op1 != op2
Run Code Online (Sandbox Code Playgroud)