Что означает сообщение "Слишком мало публичных методов"?
Я запускаю pylint на некотором коде и получаю ошибку "Слишком мало публичных методов (0/2)". Что означает это сообщение? pylint docs не помогают:
Используется, когда у класса слишком мало общедоступных методов, поэтому убедитесь, что оно действительно того стоит.
Ответы
Ответ 1
Ошибка в основном говорит о том, что классы не предназначены для хранения данных, так как вы в основном рассматриваете класс как словарь. Классы должны иметь по крайней мере несколько методов для работы с данными, которые они хранят.
Если ваш класс выглядит следующим образом:
class MyClass(object):
def __init__(self, foo, bar):
self.foo = foo
self.bar = bar
Вместо этого используйте словарь или namedtuple
. Хотя, если класс кажется лучшим выбором, используйте его. pylint не всегда знает, что лучше.
Заметьте, что namedtuple
является неизменным, а значения, назначенные при создании, не могут быть изменены позже.
Ответ 2
Если вы расширяете класс, то мое предложение состоит в том, чтобы систематически отключать это предупреждение и двигаться дальше, например, в случае задач Celery:
class MyTask(celery.Task): # pylint: disable=too-few-public-methods
"""base for My Celery tasks with common behaviors; extends celery.Task
...
Даже если вы только расширяете одну функцию, вам определенно нужен класс, чтобы сделать эту техническую функцию, и расширение определенно лучше, чем взломать сторонние классы!