通过修改 __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做的是静态分析,这就需要动态分析了。
我有一个代码库(我没有编写也无法修改),其中创建的对象的名称通过以下方式作为字符串给出:
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做的是静态分析,这就需要动态分析了。