Как исправить предупреждение Pylint «Абстрактный класс не указан»? - PullRequest
17 голосов
/ 24 ноября 2011

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

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

Ответы [ 2 ]

25 голосов
/ 24 ноября 2011

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

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

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

#pylint: disable=R0921
6 голосов
/ 24 ноября 2011

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...