我正在尝试使用 if
语句来检查变量是否已被分配并且不是 None
。
# Code that may or may not assign value to 'variable'
if variable:
do things
这会在 if
行引发错误语句:“UnboundLocalError:赋值前引用的局部变量‘变量’”。
我想如果变量没有被赋值它只会被解释为False?
我已经尝试过if variable in locals():
无济于事。
发生什么事了?我该怎么做才能达到我想要的结果?
谢谢
最佳答案
最好在开始时将 x
初始化为 None
并测试 None(如 Ned 的回答)。
发生的事情是,每当您在“加载”上引用变量(即右值)时,Python 都会查找它并要求它存在。
如果您的变量名为 x
,则会抛出以下错误:
if x in locals(): ...
这不是您想要的,因为它会检查变量保存的值是否在locals()
中。不关心名称 x
是否存在。
但你可以做到
if 'x' in locals(): ...
关于 python |如果变量 : | UnboundLocalError: local variable 'variable' referenced before assignment,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48453558/