Где подробно описаны правила, концепции и способы использования предупреждений каждого пилинта?

Я все еще открываю для себя Pylint и понимаю, почему многие питонисты деактивируют некоторые (или многие) предупреждения, чтобы понизить голос Pylint, но на данный момент, как новичок в Python Я хочу использовать pylint, чтобы улучшить мое понимание Python и качество кода, чтобы помочь мне:

  • узнать больше из заявления/инструкции
  • углубить некоторые понятия
  • оценить преимущества/недостатки рефакторинга
  • и т.п.

Так есть ли место, где все предупреждения обсуждаются, обосновываются, объясняются или они просто исходят от великих умов команды pylint?


person freezed    schedule 12.03.2018    source источник
comment
вы имеете в виду это pylint.readthedocs.io/en/latest /техническая_ссылка/ ??? если да, мне потребовалось около двух с половиной минут, что, вероятно, меньше, чем вам потребовалось, чтобы написать вопрос выше...   -  person bruno desthuilliers    schedule 12.03.2018
comment
Конечно нет… Я хочу пойти дальше этих отдельных фраз! Моя IDE уже выдает это... Когда у меня есть предупреждения о рефакторинге, я хотел бы знать немного больше, чем слишком много "что-то", недопустимое "что-то" и т. д. Если мой код работает нормально, я предполагаю, что эти предупреждения являются своего рода направляющими линиями и могут быть изучены в контексте. Что касается синтаксиса, я ссылаюсь на PEP8, но что делать с другими предупреждениями? ОК, все предупреждения не имеют PEP. Почему для максимальной ветки установлено значение 15, для операторов установлено значение 50, для переменных установлено значение 15 и т. д.? Если Python соглашается запустить код, в чем смысл…?   -  person freezed    schedule 12.03.2018
comment
Тогда вам следует отредактировать свой вопрос, чтобы сделать его более явным, но я боюсь, что он будет закрыт как слишком широкий и / или в первую очередь основанный на мнении...   -  person bruno desthuilliers    schedule 13.03.2018
comment
Я думаю, вы спрашиваете, какова серьезность каждого предупреждения, и авторитетная ссылка для каждого, а также значение значений по умолчанию каждого параметры в средстве проверки макета. Но это, вероятно, не очень хороший вопрос для SO, поскольку он субъективен. Попробуйте блоги или учебные пособия по линтингу Python.   -  person smci    schedule 13.03.2018
comment
Я отредактировал свой вопрос, теперь стало понятнее?   -  person freezed    schedule 13.03.2018


Ответы (3)


Хорошо, спасибо за ответы.

Мне нравится использовать pylint, чтобы лучше писать код, и я надеялся, что проект pylint где-нибудь объяснит и аргументирует предупреждения с подробностями, полезными для начинающих, таких как я: помогая:

  • понять, почему важно учитывать эти предупреждения
  • когда определенный контекст может смягчить точку зрения
  • когда это пришло от политически значимого лица
  • и т.п.

Похоже, это не так.

В любом случае, хотя он действительно недостаточно заполнен/подробен, сообщения Pylint (которые я нашел, прежде чем задать свой вопрос), остаются наименее плохим ответом на мой вопрос.

person freezed    schedule 13.03.2018
comment
Кажется, что официальная документация более полная, чем эта викидотка о сообщениях pylint: pylint.readthedocs.io/en/latest/technical_reference/ - person bli; 03.10.2019

Отвечая на ваш комментарий:

Когда у меня есть какие-то предупреждения, я хотел бы знать немного больше, чем «слишком много« чего-то »», «недопустимое« что-то »» и т. д. Если мой код работает нормально, я предполагаю, что эти предупреждения являются своего рода направляющими линиями и могут быть изучены с контекстом. Для синтаксиса я ссылаюсь на PEP8, но для других предупреждений? ОК, все предупреждения не имеют PEP. Почему для максимальной ветки установлено значение 15, для операторов установлено значение 50, для переменных установлено значение 15 и т. д.?

Они в основном основаны на «лучших практиках» - «золотых правилах», которые в основном получены из опыта, но иногда могут немного ошибаться в произвольной стороне - и на самом деле числа, которые вы упоминаете, действительно произвольны, но вы должны установить произвольный предел здесь , по крайней мере пока не вырастет pylint и IA.

Если Python соглашается запустить код, в чем смысл…?

Потому что код нужно поддерживать — обычно вы тратите на поддержку кода (исправление ошибок, улучшение производительности и добавление функций) на сотни больше времени, чем на написание первой версии — и небольшие, хорошо развязанные, простые функции, выполняющие одну единственную задачу, легче читать и понимать. , рассуждайте и тестируйте, чем слишком длинные функции, выполняющие три разные задачи одновременно и реализованные с глубоко вложенными ветвями и множеством побочных эффектов.

Теперь, как я уже упоминал, числа, которые вы упоминаете, действительно произвольны и могут подходить или не подходить для данной части вашего кода. Некоторые функции сложны по своей сути и требуют более сложного кода, и вам потребуется как опыт программирования, так и достаточно хорошее знание проблемы, чтобы оценить качество вашего кода.

Pylint может только предупреждать вас о вещах, которые могут быть запахом кода, вам решать, можно ли улучшить код или все в порядке (а затем, возможно, отключить некоторые предупреждения для данного оператора или функции). или модуль и т. д.). Также есть запахи кода, которые pylint не может обнаружить — например, функция делает слишком много разных вещей — поэтому вам все равно придется перечитывать свой код и спрашивать себя, все ли в порядке или нет. Тестируемость является хорошим индикатором здесь, если вы не можете легко протестировать функцию, то, скорее всего, она делает слишком много вещей, но здесь снова некоторые части кода (например, те, которые соединяют пользовательский интерфейс и домен) по определению труднее для модульного тестирования, поэтому здесь опять же, вы должны использовать свое собственное суждение.

person bruno desthuilliers    schedule 13.03.2018

Когда я ввожу pylint warnings в строку веб-поиска (google), первым результатом будут сообщения PyLint со ссылкой на страницу с объяснением каждого сообщения.

person Terry Jan Reedy    schedule 12.03.2018
comment
Возможно, я не нахожу хороших слов, чтобы объяснить, что я ищу, см. мой комментарий ниже. Сообщения PyLint должны быть интересными... если существует кодовая страница... если объяснение заполнено и …если тема не тривиальна. В любом случае, спасибо за этот оригинальный совет Google ;-) - person freezed; 12.03.2018
comment
Я понял, по крайней мере частично, и именно страницы, на которые есть ссылки на этой странице, дают больше, чем иногда загадочные фразы. - person Terry Jan Reedy; 12.03.2018
comment
Эта страница, похоже, не объясняет больше о предупреждающих сообщениях pylint, чем то, что уже есть в официальной документации. Сообщение R1722 даже не присутствует на этой странице. - person bli; 03.10.2019