Рубрики
Без рубрики

Пилинт: анализ кода Python

Получите практические, реальные навыки Python на наших ресурсах и пути

Автор оригинала: Mike Driscoll.

Анализ кода Python может быть тяжелым предметом, но это может быть очень полезно для того, чтобы ваши программы лучше. Есть несколько анализаторов кода Python Code, которые вы можете использовать для проверки вашего кода и посмотреть, соответствует ли они стандартам. Пилинт, вероятно, самый популярный. Это очень настраиваемый, настраиваемый и подключенный тоже. Это также проверяет ваш код, чтобы увидеть, соответствует ли он Pep8 Официальный стиль руководства Core Python и он ищет ошибки программирования. Мы собираемся потратить несколько минут, глядя на некоторые вещи, которые вы можете сделать с этим удобным инструментом.

Начиная

К сожалению, пилинт не входит в комплект входит в Python, поэтому вам нужно выйти и скачать его из LogiLab или Pypi Отказ Если у вас установлен PIP, то вы можете установить его так:

Пип Установите Pylint

Теперь вы должны иметь пилинт, установленный вместе со всеми его зависимостями. Теперь мы готовы катиться!

Анализ вашего кода

Последняя версия, поскольку это написание составляет 0,25,1. Как только Pylint установлен, вы можете запустить его в командной строке без каких-либо аргументов, чтобы увидеть, какие параметры оно принимает. Теперь нам нужен код, чтобы проверить. С тех пор как я написал несколько круговых кода для моего Pychecker Статья В прошлом году мы будем повторно использовать это здесь и посмотреть, если пилинт поднимает те же проблемы. Должно быть четыре проблемы. Вот код:

Теперь давайте запустим пилинт против этого кода и посмотрите, что он находит. Вы должны получить что-то вроде следующего:

C: \ Пользователи \ mdriscoll \ Desktop> Pylint Crummy_Code.py Ни один файл конфигурации не найдено, используя настройку по умолчанию ************* Модуль Crummy_Code C: 1,0: отсутствует DOCSTRING C: 4,0: Carclass: Пустая DocString E: 15,24: Carclass .__ init__: undefined variable 'Platform' E: 18,22: Carclass .__ init__: Слишком много позиционных аргументов для функций Call E: 21,4: Carclass.GetWeight: Метод должен иметь «я» как первый аргумент C: 21,4: Carclass.getWeight: неверное имя «Главный вес» (должен соответствовать [A-Z _] [A-Z0-9 _] {2,30} $) C: 21,4: Carcasass.getWeight: Пустая DocString R: 21,4: Carclass.getWeight: Метод может быть функцией R: 4,0: Carclass: слишком мало общественных методов (1/2) W: 1,0: неиспользуемый импортный SYS

Отчет ====== 13 утверждений проанализированы.

Сообщения по категории ———————-

+ ———— + ——– + ———- + ———— + | Тип | Номер | Предыдущая | Разница | + =========== + ======= + ========= + =========== + | Конвенция | 4 | NC | NC | + ———— + ——– + ———- + ———— + | Refactor | 2 | NC | NC | + ———— + ——– + ———- + ———— + | Предупреждение | 1 | NC | NC | + ———— + ——– + ———- + ———— + | Ошибка | 3 | NC | NC | + ———— + ——– + ———- + ———— +

Сообщения ———

+ ———— + ————– + | идентификатор сообщения | вхождения | + =========== + ============ + | C0112 | 2 | + ———— + ————– + | W0611 | 1 | + ———— + ————– + | R0903 | 1 | + ———— + ————– + | R0201 | 1 | + ———— + ————– + | E1121 | 1 | + ———— + ————– + | E0602 | 1 | + ———— + ————– + | E0213 | 1 | + ———— + ————– + | C0111 | 1 | + ———— + ————– + | C0103 | 1 | + ———— + ————– +

Глобальная оценка ——————- Ваш код был оценен на -6.92/10

Статистика по типу ——————–

+ ———- + ——– + ———— + ————- + ——— —– + ———- + | тип | номер | старый номер | разница |% задокументировано |% badname | + ========= + ======= + =========== + =========== + ======= ===== + ========= + | модуль | 1 | NC | NC | 0,00 | 0,00 | + ———- + ——– + ———— + ————- + ——— —– + ———- + | класс | 1 | NC | NC | 0,00 | 0,00 | + ———- + ——– + ———— + ————- + ——— —– + ———- + | Метод | 2 | NC | NC | 50.00 | 50.00 | + ———- + ——– + ———— + ————- + ——— —– + ———- + | Функция | 0 | NC | NC | 0 | 0 | + ———- + ——– + ———— + ————- + ——— —– + ———- +

Сырые метрики ————

+ ———– + ——- + ——- + ———- + ————- + . | тип | номер |% | предыдущий | разница | + ========== + ======= + ====== + ========= + =========== + . | код | 12 | 63.16 | NC | NC | + ———– + ——- + ——- + ———- + ————- + . | DocString | 4 | 21.05 | NC | NC | + ———– + ——- + ——- + ———- + ————- + . | комментарий | 3 | 15.79 | NC | NC | + ———– + ——- + ——- + ———- + ————- + . | пустой | 0 | 0,00 | NC | NC | + ———– + ——- + ——- + ———- + ————- +

. Дублирование ————

+ —————————- + ——- + ———- + ——- —– + |. | сейчас | предыдущая | разница | + ========================= + ====== + ========= + ====== ===== + | NB Дублированные линии | 0 | NC | NC | + —————————- + ——- + ———- + ——- —– + | Процентные дублированные линии | 0,000 | NC | NC | + —————————- + ——- + ———- + ——- —– +

Если вы хотите узнать, какие эти предметы в разделе «Сообщения» подразумеваются с их загадочными идентификаторами, вы можете сделать Pylint Saline, выполнив это в командной строке:

Пилинт

Однако мы действительно заботимся о первом разделе доклада как