Заставить Pylint распознавать переменные, определенные путем изменения __dict__ - PullRequest
0 голосов
/ 11 июня 2019

У меня есть кодовая база (которую я не писал и не могу изменить), где объекты создаются с именами, заданными в виде строк следующим образом:

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 не распознавать эти объекты? Я мог бы вообще отключить предупреждения о неопределенных переменных, но я хотел бы по-прежнему иметь преимущества проверок переменных, если это возможно.

1 Ответ

0 голосов
/ 12 июня 2019

Нет способа заставить Пилинт работать в этом случае. Pylint выполняет статический анализ, и для этого потребуется динамический анализ.

...