python - Python / Spyder - 未定义变量错误,当变量在环境中定义并显示时。即使出现错误,代码也能正常工作
问题描述
在 Python 4.1.5 (IDE:Spyder) 中定义变量时出现一个奇怪的错误。但是,即使出现错误,代码也可以正常运行!
如您所见,该变量social_cost_of_carbon
存储为变量,但我不断收到该错误,如图 1 所示(错误写道:Undefined name 'social_cost_of_carbon' (Pyflakes E)
我觉得我声明这些变量的方式可能是原因:
def convert_to_var(df):
desc = []
val = []
for i,row in df.iterrows():
desc.append(i)
val.append(row)
return dict(val)
val_dict = convert_to_var(IA)
locals().update(val_dict)
由于代码运行没有任何问题,我没有做任何事情来解决这个问题。我是否需要担心并解决这个问题,或者我只是让它继续运行而不处理错误,因为代码运行顺利?
提前谢谢你。
解决方案
(这里是 Spyder 维护者)正如您所猜测的,问题是您正在使用代码中的这一行动态创建变量:
locals().update(val_dict)
由于我们的 linter 找不到正确声明该变量的位置,因此它报告它未定义。但是您可以安全地忽略该消息。
注意:目前无法隐藏 linter 警告。但是,在未来的版本中,我们将通过在表单的行尾添加注释来提供一种方法# noqa
。
推荐阅读
- python - 在 AWS SAM 模板中使用现有的 S3 存储桶
- amazon-web-services - 需要在 AWS 中为包含 c++ 语言的 python 库创建一个层
- sql - 如何编写 SQL 查询来生成 json 对象内的空 json 对象
- laravel - 在组件而不是 app.js 中加载 vue 路由
- reactjs - 道具未在商店更改时更新 - Reactjs/Redux
- ios - Swift:preferredStatusBarStyle() 未使用 SSASideMenu 调用
- c# - 递归菜单的顺序错误
- oracle - oracle流水线表功能可以提高普通视图的性能吗
- javascript - 如何使 JS 错误不会阻止 Trix 工作?
- java - Maven-Spring-boot-Eclipse 构建成功,但不安装包(Lombok)