Как ответить
PEP 8 — это документ с рекомендациями по оформлению кода на Python. Его полное название — Python Enhancement Proposal 8. В нём описаны правила для отступов, длины строк, пробелов, именования переменных, функций и классов. Эти правила не обязательны, но их соблюдение делает код единообразным и читаемым — особенно в команде или опенсорс-проектах.
Основные блоки PEP 8, которые я использую каждый день:
- Отступы: используем 4 пробела на уровень вложенности. Никаких табуляций, только пробелы. В большинстве редакторов это настраивается автоматически.
- Максимальная длина строки: 79 символов для кода, 72 для комментариев и докстрингов. Это удобно для просмотра на небольших экранах и при параллельном сравнении в diff-ах.
- Пустые строки: две пустые строки между функциями и классами верхнего уровня, одна — внутри класса между методами. Это визуально разделяет логические блоки.
- Именование: переменные и функции — snake_case, классы — CamelCase, константы — UPPER_CASE. Приватные методы начинаются с одного подчёркивания, магические — с двойного
__. - Пробелы вокруг операторов: в присваиваниях, сравнениях и арифметике ставлю пробелы:
result = a + b. Но не ставлю внутри скобок при вызове функций:func(a, b).
Пример, как может выглядеть код, следующий PEP 8:
class ShoppingCart:
def __init__(self):
self._items = []
def add_item(self, name, price, quantity):
self._items.append({
'name': name,
'price': price,
'quantity': quantity,
})
def total(self):
return sum(
item['price'] * item['quantity']
for item in self._items
)PEP 8 не единственный стандарт. Есть ещё PEP 257 (докстринги), PEP 484 (типизация). Но для новичка PEP 8 — база. Его легко проверить автоматически с помощью инструментов flake8 или black, который сам форматирует код по этим правилам. В работе я настраиваю CI на проверку PEP 8, чтобы не тратить время на ревью форматирования.