pyLint выглядит как хороший инструмент для запуска анализа кода python. Однако наша главная цель - поймать любые потенциальные ошибки, а не правила кодирования. Включение всей проверки pyLint, похоже, создает много шума. Любые предложения по набору функций pyLint, которые вы используете и которые эффективны?Рекомендации по использованию PyLint?
ответ
Pyflakes должен хорошо служить вашей цели.
Вы можете заблокировать любые предупреждения/ошибки вам не нравится, через:
pylint повреждает = [ошибка, ошибка]
Я заблокировал это (описание от http://www.logilab.org/card/pylintfeatures
W0511: Используется, когда обнаружена предупреждающая записка как FIXME или XXX
W0142: Используется * или * magic * Используется, когда функция или метод вызывается с помощью * args или ** kwargs для отправки аргументов. Это не улучшает читаемость и его следует использовать с осторожностью.
W0141: Используется встроенная функция% r Используется, когда используется встроенная функция черного цвета (см. Параметр плохой функции). Обычными черными перечисленными функциями являются такие, как карта или фильтр, где Python предлагает теперь более чистую альтернативу, такую как понимание списка.
R0912: Слишком много ветвей (% s /% s) Используется, когда функция или метод имеют слишком много ветвей, что затрудняет их выполнение.
R0913: Слишком много аргументов (% s /% s) Используется, когда функция или метод принимает слишком много аргументов.
R0914: Слишком много локальных переменных (% s /% s) Используется, когда функция или метод имеют слишком много локальных переменных.
R0903: Слишком мало общедоступных методов (% s /% s) Используется, когда класс имеет слишком мало общедоступных методов, поэтому убедитесь, что он действительно того стоит.
W0212: Доступ к защищенному члену% s класса клиента Используется, когда защищенный член (то есть член класса с именем, начинающимся с подчеркивания) является доступом за пределами класса или потомком класса, в котором он определен.
W0312: найдено отступ с% ss вместо% ss Используется, когда в модуле есть несколько смежных вкладок и пробелов.
C0111: Отсутствует docstring Используется, когда модуль, функция, класс или метод не имеют docstring. Для некоторых специальных методов, таких как init, не требуется требуемая строка.
C0103: Недопустимое имя "% s" (должно совпадать с% s) Используется, когда имя не соответствует регулярному выражению, связанному с его типом (константа, переменная, класс ...).
-E будет отмечать только то, что pylint считает ошибкой (т. Е. Никаких предупреждений, никаких соглашений ...)
настойчиво выключить предупреждения и конвенции:
- Создать
~/.pylintrc
файл, запустивpylint --generate-rcfile > ~/.pylintrc
- Редактировать
~/.pylintrc
- раскомментировать
disable=
и изменить эту строку вdisable=W,C
используя Grep как :
pylint my_file.py | grep -v "^C"
- 1. рекомендации по использованию __builtin_expect
- 2. Рекомендации по использованию Guice
- 3. Шов Рекомендации по использованию
- 4. Рекомендации по использованию инструмента
- 5. Рекомендации по использованию какао
- 6. Рекомендации по использованию контейнеров
- 7. Рекомендации по использованию Behat
- 8. Рекомендации по использованию drawRect
- 9. Рекомендации по использованию ServerCertificateValidationCallback
- 10. Рекомендации по использованию
- 11. Рекомендации по использованию DataSet?
- 12. Рекомендации по использованию блокировки
- 13. Рекомендации по использованию ZeroMQ
- 14. Рекомендации по использованию Terraform
- 15. Рекомендации по использованию таймеров
- 16. Рекомендации по использованию языка
- 17. Рекомендации по использованию Sitecore
- 18. Рекомендации по использованию EditText
- 19. C - Рекомендации по использованию строк
- 20. Рекомендации по использованию основных данных
- 21. Рекомендации по использованию топологии маркера
- 22. Рекомендации по использованию @ in C#
- 23. Рекомендации по использованию потоков Delphi
- 24. Рекомендации по многопоточному использованию Android
- 25. Рекомендации по использованию REST API
- 26. Рекомендации по использованию CoreBluetooth Framework
- 27. Рекомендации по использованию ассоциаций Ecto
- 28. Рекомендации по использованию атрибутов Python
- 29. Рекомендации по использованию SQLite3 + Node.js
- 30. Haskell: рекомендации по использованию строгости
Описание отключения определенных типов сообщений является правильным, но я считаю, что некоторые из конкретных вариантов подавленных ошибок являются спорными. Такие вещи, как «Слишком много локальных переменных/ветвей», представляют собой огромный красный флаг. – 2014-01-28 15:33:34