Друг сказал мне о Pylint и только из любопытства, я выполнил его против некоторых стандартных модулей библиотеки. К моему удивлению оценки были низкими. Вот несколько выполнений:
os.py
Your code has been rated at 3.55/10
random.py
Your code has been rated at 4.74/10
Я выполнил его еще на некоторых модулях и найденном оценка, чтобы быть ~ 6 - 7.
Я задавался вопросом причина позади этого? Pylint повреждается или существует больше факторов к оценке, чем я знаю? Я задаю этот вопрос, особенно вызывают, я плохо знаком с Python и был в зависимости от Pylint, чтобы помочь мне улучшить свой стиль кодирования :)
Значения по умолчанию Pylint довольно строгие и не должны жаловаться на вещи. Например, если вы используете foo (** kwargs)
, вы получите сообщение об использовании «магии». Иногда кажется, что pylint смотрит на Python с точки зрения Java-программиста.
Вам нужно будет просмотреть конкретные сообщения и решить, согласны ли вы с ними.
Другие проблемы включают невозможность выполнения условий для конкретных платформ. В os.py он жалуется:
F:119: Unable to import 'riscos'
Pylint был написан намного позже stdlib. И stdlib, например, не придерживается строгих соглашений об именах (PEP008 является недавним по сравнению с python).Ключевые факторы для получения «хороших» оценок pylint:
убедитесь, что ваш стиль написания кода соответствует ожиданиям Pylint (или настройте Pylint в соответствии с вашим стилем / соглашениями). Это включает в себя функции, переменные, классы, имена методов, пробелы в различных местах и т. Д.
пишите код Python настолько статичным, насколько это удобно, и избегайте динамических трюков.
писать строки документации
Очевидно, что стандартная библиотека не написана для оптимизации рейтингов модулей Pylint.
Использование Pylint не обязательно улучшит ваш «стиль программирования». Однако в ряде случаев это упростит понимание вашего кода, иногда за счет некоторой «питоничности».