我在Python中做了一些比较。我很惊讶地发现我可以将字符串与整数进行比较。然后我做了一个id,发现实际上字符串的id大于int的id,我认为这就是我得到这个输出的原因。
In [19]: 'a' < 3
Out[19]: False
In [20]: 'a'>3
Out[20]: True
In [17]: id('a')
Out[17]: 140414909035824
In [18]: id(3)
Out[18]: 23119752
请确认我正确解释了这种行为(Python比较id级别)。
答案 0 :(得分:5)
Python 2.x的跨类型比较是一次历史性事故。来自documentation:
(...)不同类型的对象总是比较不相等,并且一致但是任意地排序
在Python 3.x中,这是固定的 - 这些比较会引发类型错误。