我喜欢对空变量使用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,关闭编辑一些代码......
试验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)