У меня есть код в классе многократного использования, который изменяет некоторые типы.Вот упрощенная версия.
class Foo:
def __init__(self):
self.count = 0
def increment(self):
self.count += 1
# Add another method outside of the class definition.
# Pylint doesn't care about this, and rates this file 10/10.
Foo.__dict__["current_count"] = lambda self: self.count
В реальном коде «current_count» является переменной, а не фиксированной строкой, поэтому я не написал:
Foo.current_count = lambda self: self.count # Cannot do in my scenario.
СейчасКогда мои клиенты приходят использовать новую функцию, Pylint в ужасе прыгает вверх и вниз.
import server_api
def main():
foo_count = server_api.Foo()
foo_count.increment()
print foo_count.current_count()
# Pylint complains here:
# E1101: 8:main: Instance of 'Foo' has no 'current_count' member
# I don't want to have to tell pylint to disable that message in every client.
main()
Каждый класс, использующий эту новую функцию, подвергается наказанию, и я вынужден отключить сообщение в каждой ссылке.Я бы СЕЙЧАС поместил некоторый код в API, чтобы сказать Pylint, чтобы он остыл, когда есть неизвестные ссылки на этот класс., и я не смог найти там никаких предложений.
Итак, все сводится к следующему: могу ли я сказать pylint в своем коде API, чтобы отключить правило E1101 по отношению к этому классу, когда клиент ссылается на него?Есть ли другое решение?