我试图使用一个if语句来检查变量是否已分配,而不是None.
# Code that may or may not assign value to 'variable'
if variable:
do things
Run Code Online (Sandbox Code Playgroud)
这会在if语句的行处引发错误:"UnboundLocalError:在赋值之前引用的局部变量'变量'".
我想如果变量没有被分配,它只会被解释为False?
我试着if variable in locals():无济于事.
这是怎么回事?我能做些什么才能达到我想要的效果?
谢谢
最好简单x地None在开始时初始化并测试None(如在Ned的答案中).
发生的事情是,无论何时在"加载"(即rvalue)上引用变量,Python都会查找并要求它存在.
如果您的变量已命名x,则会抛出以下内容:
if x in locals(): ...
Run Code Online (Sandbox Code Playgroud)
并不是你想要的,因为它会检查变量所持有的值是否存在locals().不是名字x在那里.
但你可以做到
if 'x' in locals(): ...
Run Code Online (Sandbox Code Playgroud)