比较不同类型时,CPython 2应用了一些不同的规则:
>无排序第一。
数字来自其他类型,数字之间进行比较。
>其他类型按其类型名称排序,除非它们明确地实现比较方法。
另外,一些类型实现了自定义排序规则,可以拒绝所有的排序尝试。例如,当您尝试订购它们时,复数会引发异常,而当您尝试对其他类型进行排序时,datetime对象会这样做。
Most other objects of built-in types compare unequal unless they are the same object; the choice whether one object is considered smaller or larger than another one is made arbitrarily but consistently within one execution of a program.
目标是在对一系列混合对象进行排序时,使不同类型之间进行比较稳定。
在Python 3中,比较规则已经收紧了;您只能比较明确实现比较的对象。经过多年的经验,得出的结论是,允许任意比较只导致更多的混乱;比较字符串与数字在其中与整数总是混淆新来者,例如。
你的代码会引发异常。