How to say “if var:” even if “var” does not exist at all?
本问题已经有最佳答案,请猛点这里访问。
这样做很好:
1 2 3 | a = 1 if a: b = a |
但这不起作用:
1 2 | if a: b = a |
如果我们明确地说..
1 | "if a exists" |
为什么会出错?如果它不存在,那么就不要在if语句的参数内做任何事情。
更新
结果是,"如果"是指……如果"的值在python中表示。
我在寻找"如果A存在,那么继续前进"的等价性。
您可以使用
1 2 | if 'a' in locals(): # variable 'a' is defined |
您还可以使用python的原则,即请求原谅比请求允许更容易:
1 2 3 4 5 | try: b # if we get here, variable 'b' is defined except NameError: # variable 'b' is not defined |
如文件所述:
Easier to ask for forgiveness than permission. This common Python coding style assumes the existence of valid keys or attributes and catches exceptions if the assumption proves false. This clean and fast style is characterized by the presence of many try and except statements.
当一个名称不存在时(还没有绑定到,因此没有赋值将值绑定到它,不存在将导入的对象分配给该名称的
您可以处理该异常;全局名称抛出
1 2 3 4 5 6 | try: somename except NameError: # name does not exist else: # name exists |
请参阅执行模型文档,了解名称是否存在。