Сборка всего вместе: Рефакторинг скрипта
Пришло время применить все, что вы узнали. На этом шаге вы вручную проведете рефакторинг скрипта, который нарушает несколько рекомендаций PEP 8. Это упражнение проверит ваше понимание отступов, пробелов и соглашений об именовании.
Сначала откройте файл refactor_challenge.py в проводнике файлов. Он содержит следующий код, который вычисляет площадь прямоугольника, но написан в плохом стиле.
## This script calculates the area of a rectangle and prints it.
def CalculateArea(width,height):
Area = width*height ## calculate area
return Area
w = 10
h = 5
rectangle_area=CalculateArea(w,h)
print("The area of the rectangle is:",rectangle_area)
Ваша задача — вручную отредактировать этот код в редакторе, чтобы он соответствовал PEP 8. Ищите проблемы со следующим:
- Именование функций: Имена функций должны использовать
snake_case.
- Именование переменных: Имена переменных также должны использовать
snake_case.
- Пробелы: Проверьте правильность пробелов вокруг операторов и после запятых.
- Комментарии: Строчные комментарии должны иметь пробел после символа
#.
Уделите время, чтобы самостоятельно провести рефакторинг кода. Когда закончите, ваш код должен выглядеть примерно так:
## This script calculates the area of a rectangle and prints it.
def calculate_area(width, height):
"""Calculate and return the area of a rectangle."""
area = width * height ## calculate area
return area
w = 10
h = 5
rectangle_area = calculate_area(w, h)
print("The area of the rectangle is:", rectangle_area)
Обратите внимание на изменения: CalculateArea стало calculate_area, Area стало area, и были исправлены пробелы. Мы также добавили docstring (строку документации) к функции, что является лучшей практикой для объяснения того, что делает функция.
Сохраните изменения и запустите скрипт, чтобы убедиться, что он по-прежнему работает корректно:
python ~/project/refactor_challenge.py
Вывод должен быть следующим:
The area of the rectangle is: 50
Это упражнение показывает, что рефакторинг стиля не меняет функциональность кода, но значительно улучшает его читаемость и поддерживаемость.