Python的问题是无测试?

sha*_*fty 1 python

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

>"" is None
False

>[] is None
False

>{} is None
False
Run Code Online (Sandbox Code Playgroud)

这是怎么回事?

我在Debian/Sid i686 GNU/Linux上使用Python 2.6.6(r266:84292,2010年12月27日,00:02:40)[GCC 4.4.5].

编辑:来自Sven Marnach的使用bool("")的精彩提示.brb,关闭编辑一些代码......

Sve*_*ach 7

试验x is None测试,如果x确实None对象(即,如果名称x引用的对象None).您正在寻找的是真值测试:

if "":
    print "non-empty"
else:
    print "empty"
Run Code Online (Sandbox Code Playgroud)

if隐式将条件转换为bool.您还可以明确地执行此操作:

>>> bool("")
False
>>> bool("x")
True
Run Code Online (Sandbox Code Playgroud)