【发布时间】:2019-06-11 08:37:11
【问题描述】:
我有一个代码库(我没有编写也无法修改),其中创建对象的名称以字符串形式通过以下方式给出:
import sys
class A:
def __init__(self, name):
self.name = name
sys.modules['__main__'].__dict__[name] = self
然后对象被定义和访问为
A('test')
print(test.name)
但是,当我在 Visual Studio Code 中打开它时,所有这些变量都被 pylint 标记为未定义。有谁知道让 Pylint 不识别这些物体的好方法?我可以完全关闭未定义的变量警告,但如果可能的话,我希望仍然可以享受变量检查的好处。
【问题讨论】:
-
这不是真正的编码问题,我认为您可以在 VSCode 支持站点获得更多帮助
-
这看起来根本不可能。 Pylint 执行static analysis(不执行程序),因此无法知道
A('test')定义了全局变量test。我想您可以创建一个 linting 工具,在其中硬编码规则“A定义全局变量”,但很难想象这样的工具已经存在。
标签: python visual-studio-code pylint