Причина низких рейтингов Pylint стандартного кода библиотеки Python
Друг рассказал мне о Пилинте и просто из любопытства, я провел его против некоторых стандартных библиотечных модулей. К моему удивлению, рейтинги были низкими. Вот несколько прогонов:
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, чтобы помочь мне улучшить стиль кодирования:)
Ответы
Ответ 1
По умолчанию настройки Pylint довольно строги и жалуются на то, что им не нужно. Например, если вы используете foo(**kwargs)
, вы получите сообщение об использовании "magic". Иногда кажется, что pylint смотрит на Python с точки зрения программиста Java.
Вам нужно будет посмотреть конкретные сообщения и решить, согласны ли вы с ними.
Другие проблемы включают неспособность выполнять определенные для платформы условные обозначения. В os.py он жалуется:
F:119: Unable to import 'riscos'
Ответ 2
Пилинт был написан задолго до стдлиба. И stdlib не придерживается строгих соглашений об именах, например (PEP008 - недавний, по-питон). Ключевые факторы для получения "хороших" оценок пилинга:
-
убедитесь, что ваш стиль написания кода соответствует тому, что ожидает Pylint (или настройте Pylint в соответствии с вашим стилем/соглашениями). Сюда входят функции, переменные, классы, имена методов, пробелы в разных местах и т.д.
-
пишите код Python как статический, как удобный, и избегайте динамических трюков.
-
записать docstrings
Очевидно, что стандартная библиотека не написана для оптимизации оценок Pylint модулей.
Использование Pylint не обязательно улучшит ваш "стиль кодирования". Однако в ряде случаев ваш код будет более понятным, иногда ценой некоторой "питоничности".