一切都大于无吗?

发布于 2021-01-29 19:34:13

除了之外None,还有Python内置的数据类型吗?

>>> not foo > None
True

foo该类型的值在哪里?Python 3呢?

关注者
0
被浏览
56
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

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

    在Python 3中,这已更改;现在在没有合理的自然排序的情况下对事物进行比较会导致结果TypeError。从
    3.0版“新增功能”更新

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

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

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



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看