Подтвердить что ты не робот

Причина низких рейтингов 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, чтобы помочь мне улучшить стиль кодирования:)

4b9b3361

Ответ 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 не обязательно улучшит ваш "стиль кодирования". Однако в ряде случаев ваш код будет более понятным, иногда ценой некоторой "питоничности".