一切都大于无吗?

一切都大于无吗?,第1张

一切都大于无吗?

None
总是小于Python
2中的任何数据类型(请参阅参考资料
object.c
)。

在Python 3中,这已更改;现在在没有合理的自然排序的情况下对事物进行比较会导致结果

TypeError
。从
3.0版“新增功能”更新

Python 3.0简化了排序比较的规则:

排序比较 *** 作符(

<
<=
>=
>
)提出一个
TypeError
例外,当 *** 作数没有意义的自然顺序。因此,这样的表达式:
1 <''
0 > None
len <= len
不再有效,并且如
None <None
提高
TypeError
,而不是返回
False
。必然的结果是,对异构列表进行排序不再有意义-
所有元素必须彼此可比。请注意,这不适用于
==
!=
运算符:不同类型的对象总是比较彼此不相等。

这使某些人感到不安,因为执行诸如对具有一些

None
值的列表进行排序
None
并在开始或结束时将这些值聚集在一起的列表等 *** 作通常很方便。
邮件列表上有一个关于此
的话题,但最终要点是Python 3试图避免对排序做出任意决定(这在Python 2中经常发生)。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5616523.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存