Как исправить предупреждение pylint "Абстрактный класс не указан"?

У меня есть класс Python, который вызывает "NotImplementedError" для нескольких методов, и класс наследуется несколькими другими классами, которые определены в их собственных файлах.

Когда я запускаю Pylint в файле с абстрактным классом, он всегда жалуется на "Абстрактный класс, на который не ссылаются". Мне было интересно, это просто Пилинт, параноик или есть что-то, что мне нужно исправить?

Ответы

Ответ 1

Если у вас в вашем классе метод, повышающий значение NotImplementedError, достаточно сделать pylint считать, что это абстрактный класс.

Как pylint проверяет каждый файл, выделенный из остальной части проекта, если никто не наследует от этого класса в файле, он поднимет это сообщение.

Если вы хотите деактивировать его, вам нужно поставить этот комментарий перед определением вашего класса:

#pylint: disable=R0921

Ответ 2

Pylint считает каждый файл "самодостаточным", поэтому при проверке файла, в котором вы определили свой абстрактный класс, но не подклассов, он жалуется на R0921 (http://www.logilab.org/card/pylintfeatures).

Фактически, тип сообщения - "R", что означает "refactor" (http://www.logilab.org/card/pylint_manual#pylint-output): Pylint предлагает "хорошую практику", но вы может с радостью оставить его таким.