为什么空字符串和无法评估不同?

时间:2014-05-07 07:35:40

标签: python evaluation

为什么这两者的评价不同?

In [34]: a = ''

In [35]: if a or a >=0:
    print 'y'
    ....:     
y

In [36]: a = None

In [37]: if a or a >=0:
    print 'y'
    ....:     

我认为一个空字符串也会计算为None(我知道它们不一样)?或者它只是假的,因此评估为0(如果测试像if a: do something那么评估为无)?

1 个答案:

答案 0 :(得分:0)

这是因为在CPython int之前string

来自docs

  

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

这样:

>>> '1' > 1
True