Причина низких оценок Pylint кода стандартной библиотеки Python - PullRequest
14 голосов
/ 28 июля 2010

Мой друг рассказал мне о 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.

Мне было интересно, что за этим стоит? Пилинт сломан или в рейтинге больше факторов, чем мне известно? Я задаю этот вопрос особенно потому, что я новичок в Python и зависел от Pylint, чтобы помочь мне улучшить мой стиль кодирования:)

Ответы [ 2 ]

12 голосов
/ 28 июля 2010

Значения по умолчанию у Pylint довольно строгие, и они не должны жаловаться. Например, если вы используете foo(**kwargs), вы получите сообщение об использовании «волшебства». Иногда кажется, что Pylint смотрит на Python с точки зрения Java-программиста.

Вам нужно будет просмотреть конкретные сообщения и решить, согласны ли вы с ними.

Другие проблемы включают неспособность выполнять условия для конкретной платформы. В os.py жалуется:

F:119: Unable to import 'riscos'
6 голосов
/ 11 августа 2010

Пилинт был написан задолго после stdlib. И, например, stdlib не придерживается строгих соглашений об именах (PEP008 - это недавно, без python). Ключевые факторы для получения "хороших" оценок Pylint:

  • убедитесь, что ваш стиль написания кода соответствует ожидаемому Pylint (или настройте Pylint так, чтобы он соответствовал вашему стилю / соглашениям). Сюда входят функции, переменные, классы, имена методов, пробелы в разных местах и ​​т. Д.

  • пишите код на Python настолько статичным, насколько это удобно, и избегайте динамических уловок.

  • запись строк документации

Очевидно, что стандартная библиотека не написана для оптимизации оценок модулей Pylint.

Использование Pylint не обязательно улучшит ваш "стиль кодирования". Однако в ряде случаев это сделает ваш код более легким для понимания, иногда за счет некоторой «питоничности».

...