Skip to main content
 首页 » 编程设计

python之Python 中的一个奇怪事件

2025年05月04日11zfyouxi

出于某种原因,在 Python 2.7 中表达式的形式为 tuple > list返回 True ,但是tuple < list和 tuple == list返回 False .这是为什么?

这个观察无论如何都不是我的原创。

请您参考如下方法:

tuple 和 list 不是同一类型。在比较不同类型的值时,Python 做了一些令人惊讶的事情,并且没有定义跨这些类型工作的比较器。它比较类名的字典顺序:

>>> class Coffee(object): 
...     pass 
...  
>>> class Tea(object): 
...     pass 
...  
>>> c = Coffee() 
>>> t = Tea() 
>>> c > t 
False 
>>> c == t 
False 
>>> c < t 
True 
>>>  

幸运的是,在 python 3 中,这种情况消失了,比较此类类型会引发异常。