如何在"var"不存在时也说"if var:"?
这个代码可以正常运行:
a = 1
if a:
b = a
但是这个代码就不行:
if a:
b = a
这不是说这个“if”语句会被执行,因为我们明确地说了……
"if a exists"
那么为什么会出错呢?如果它不存在,那在这个if语句的条件下就什么都不要做呀。
更新
原来“if a”在Python中是指“如果a有值”。
我想找的是“如果a存在,那就继续”的写法。
2 个回答
3
当一个名字不存在的时候(也就是说,它没有被绑定,也就是没有给它赋值,没有import
语句把某个对象赋给这个名字,也没有函数参数),Python就会抛出一个异常。
你可以处理这个异常;如果是全局名字,会抛出一个NameError
,如果是局部名字,则会抛出UnboundLocalError
。使用try...except
语句来捕获异常,也可以告诉你是否没有抛出异常:
try:
somename
except NameError:
# name does not exist
else:
# name exists
有关名字存在与否的详细信息,请查看执行模型文档。