Python的is None test有问题吗?

2024-10-03 19:30:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我喜欢对空变量使用is None测试,它非常灵活、简单和有用。它现在似乎已经停止工作了:

>"" is None
False

>[] is None
False

>{} is None
False

怎么回事?在

我在Debian/sidi686gnu/Linux上使用python2.6.6(r266:842922010年12月27日,00:02:40)[gcc4.4.5]。在

编辑:来自svenmarnach关于使用bool(“”)的绝妙提示。brb,关闭以编辑一些代码。。。在


Tags: 代码nonefalse编辑islinuxdebianbool
3条回答

嗯。。。那根本没用。is测试实例标识——甚至{}为false。在

>>> {} is {}
False

测试x is None测试x是否真的None对象(也就是说,如果名称x引用了对象None)。您要找的是truth value testing

if "":
    print "non-empty"
else:
    print "empty"

if隐式地将条件转换为bool。也可以显式执行以下操作:

^{pr2}$

只有NoneNone。我想你要找的是空的listdict,和{}的布尔值

例如:

>>> if "":
...     print 'woo'
... else:
...     print 'hoo'
...
hoo

{}[]相同

相关问题 更多 >