терпретатора позволяет вам быстро изменять код и тестировать изменения. Одна-
ко в производственном коде выражения print() использовать не стоит, поэтому
вам нужно помнить о том, что следует удалять их. К тому же ошибки, связанные
с копированием и вставкой, сделать очень легко.
pylint, pyflakes и PEP-8
Следующим шагом перед созданием настоящих программ для тестирования явля-
ется использование контролера кода Python. Самыми популярными являются
Тестируем код
353
pylint (http://www.pylint.org/) и pyflakes (http://bit.ly/pyflakes). Вы можете установить
любой из них (или даже оба) с помощью pip:
$ pip install pylint
$ pip install pyflakes
Они проверяют на наличие реальных ошибок в коде (например, обращения
к переменной до присвоения ей значения) и несоответствие стилю (как если бы
код носил одновременно одежду в полоску и в клетку). Рассмотрим практически
бессмысленную программу, в которой есть логическая и стилистическая ошибки:
a = 1
b = 2
print(a)
print(b)
print(c)
Так выглядит выходная информация от pylint:
$ pylint style1.py
No config file found, using default configuration
************* Module style1
C: 1,0: Missing docstring
C: 1,0: Invalid name "a" for type constant
(should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
C: 2,0: Invalid name "b" for type constant
(should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
E: 5,6: Undefined variable 'c'
Если пролистать дальше, к разделу Global evaluation, можно увидеть наш счет
(10.0 — это высший балл):
Your code has been rated at -3.33/10
Ой! Сначала исправим ошибку. Строка вывода pylint, которая начинается с E,
указывает на то, что найдена ошибка, которая заключается в том, что мы не при-
своили значение переменной с до ее вывода на экран. Давайте это исправим:
a = 1
b = 2
c = 3
print(a)
print(b)
print(c)
$ pylint style2.py
No config file found, using default configuration
************* Module style2
C: 1,0: Missing docstring
C: 1,0: Invalid name "a" for type constant