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

Python / Spyder - Undefined variable error, when variable is defined and shown in the environment. Code works even with the error

我在 Python 4.1.5 (IDE:Spyder) 中定义变量时遇到一个奇怪的错误。 然而,即使有错误,代码运行也没有任何问题!

如您所见,变量 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 无法找到正确声明该变量的位置,因此它报告它未定义。但是您可以安全地忽略该消息。

注意:目前无法隐藏 linter 警告。但是,在未来的版本中,我们将通过在 # noqa.

形式的行末尾添加注释来提供一种方法。