通过修改 __dict__ 让 Pylint 识别定义的变量

Make Pylint recognise variables defined by modifying __dict__

我有一个代码库(我没有编写也无法修改),其中创建的对象的名称通过以下方式作为字符串给出:

import sys

class A:
    def __init__(self, name):
        self.name = name
        sys.modules['__main__'].__dict__[name] = self

然后将对象定义和访问为

A('test')
print(test.name)

然而,当我在 Visual Studio 代码中打开它时,所有这些变量都被 pylint 标记为未定义。有谁知道让 Pylint 不识别这些对象的好解决方法?我可以完全关闭未定义的变量警告,但如果可能的话,我仍然想享受变量检查的好处。

在这种情况下无法使 Pylint 工作。 Pylint做的是静态分析,这就需要动态分析了。