是否有Python内置数据类型,除了None
,为此:
>>> not foo > None
True
其中foo
是该类型的值吗? Python 3呢?
[None
始终小于Python 2中的任何数据类型(请参阅object.c
)。
在Python 3中,这已更改;现在对没有合理自然顺序的事物进行比较会得出object.c
。从TypeError
:
Python 3.0简化了排序比较的规则:
排序比较运算符(3.0 "what's new" updates,
<
,<=
,>=
)在操作数没有有意义的自然排序时会引发>
异常。因此,像TypeError
,1 < ''
或0 > None
之类的表达式不再有效,例如len <= len
升高None < None
而不是返回TypeError
。必然的结果是,对异构列表进行排序不再有意义-所有元素都必须彼此可比。请注意,这不适用于False
和==
运算符:不同类型的对象始终比较彼此不相等。
这让某些人感到不安,因为通常很方便地执行诸如对其中具有一些!=
值的列表进行排序,并且使None
值在开始或结束时聚集在一起的列表的操作。 None
前一阵子,但最终要点是Python 3试图避免对排序做出任意决定(这在Python 2中经常发生)。