在Python中,None的计算结果小于零?

Mik*_*Lin 30 python python-2.x

在Python中,None评估小于零?

ActivePython 2.7.2.5 (ActiveState Software Inc.) based on
Python 2.7.2 (default, Jun 24 2011, 12:21:10) [MSC v.1500 32 bit (Intel)] on win
32
Type "help", "copyright", "credits" or "license" for more information.
>>> None < 0
True
>>> None == 0
False
>>> None > 0
False
>>>
Run Code Online (Sandbox Code Playgroud)

这是预期的吗?

我猜想这None将等于零(通过类型强制),或者所有这些语句都会返回False.

Thi*_*ter 15

参见手册:

除了不同的数字类型和不同的字符串类型之外,不同类型的对象永远不会相等; 这些对象是一致但任意排序的(因此排序异构数组会产生一致的结果).

CPython实现细节:除了数字之外的不同类型的对象按其类型名称排序; 不支持正确比较的相同类型的对象按其地址排序.

  • 是的.您通常希望排序操作在每次使用时产生相同的结果. (5认同)

ham*_*mar 5

文档

CPython实现细节:除数字外的不同类型的对象按类型名称排序;不支持正确比较的相同类型的对象按其地址排序。

NoneType比较为小于,int因为比较似乎区分大小写。

>>> type(0)
<type 'int'>
>>> type(None)
<type 'NoneType'>
>>> 'NoneType' < 'int'
True
Run Code Online (Sandbox Code Playgroud)

  • 这不可能是正确的,因为 `print(5 &gt; {})` 给你假,而 `int &gt; dict` (3认同)