Python / Spyder-定义变量并在环境中显示时,出现未定义的变量错误代码即使出现错误也能正常工作

问题描述

在Python 4.1.5(IDE:Spyder)中定义变量时遇到一个奇怪的错误但是,即使出现错误代码也可以正常运行!

enter image description here

enter image description here

如您所见,变量social_cost_of_carbon被存储为变量,但是我不断收到该错误,如图1所示。错误写道:未定义名称'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找不到正确声明该变量的位置,因此它报告未定义。但是您可以忽略该消息。

注意:目前无法隐藏棉绒布警告。但是,在将来的版本中,我们将提供一种方法,可以在# noqa格式的行末添加注释。