这样可以正常工作:
a = 1
if a:
b = a
Run Code Online (Sandbox Code Playgroud)
但这不起作用:
if a:
b = a
Run Code Online (Sandbox Code Playgroud)
鉴于我们明确表示,它不会像执行此"if"语句一样执行.
"if a exists"
Run Code Online (Sandbox Code Playgroud)
那为什么会出错呢?如果它不存在则只是在if语句的参数内不做任何事情.
UPDATE
事实证明"如果一个"意味着......"如果一个值"意味着在python中.
我正在寻找"如果一个存在然后前进"的等价性
你可以使用locals():
if 'a' in locals():
# variable 'a' is defined
Run Code Online (Sandbox Code Playgroud)
您还可以使用Python的原则,即要求宽恕比允许更容易:
try:
b
# if we get here, variable 'b' is defined
except NameError:
# variable 'b' is not defined
Run Code Online (Sandbox Code Playgroud)
比许可更容易请求宽恕.这种常见的Python编码风格假设存在有效的键或属性,并且如果假设被证明是错误则捕获异常.这种干净和快速的风格的特点是存在许多try和except语句.