python |如果变量 : | UnboundLocalError: local variable 'variable' referenced before assignment

标签 python

我正在尝试使用 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/

相关文章:

python - 如何将错误陷阱循环回原始问题

python - 比较值与 '==' 时, '=' 运算符的目的是什么?

python - 带Flask的微服务

python - 如何在图像中找到纬度/经度坐标,如果我们有 4 个角的纬度/经度

python - pipenv 仅在主目录中安装 .venv

python - numpy 中的超对角非方矩阵?

Python递归和列表

python - Python 中的实时倒计时器

python - 加入 2 个具有不同列数的 Pandas 数据框

python - 如何在Python中重载@?