ENIGMA AI
ENIGMA AI

Что такое PEP 8?

встречается 3× Python junior language_specific

Как ответить

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, чтобы не тратить время на ревью форматирования.

Ключевые тезисы

  • PEP 8 — это набор рекомендаций по стилю кода на Python, а не обязательный стандарт.
  • Основные правила: 4 пробела для отступов, 79 символов в строке, snake_case для переменных и функций, CamelCase для классов.
  • Соблюдение PEP 8 повышает читаемость кода и упрощает командную работу.
  • Для автоматической проверки используют flake8, а для автоматического форматирования — black.
  • Есть и другие PEP (257, 484), но PEP 8 — первый, с которого начинают изучение Python.

Что спросят дальше

  • — Почему в PEP 8 рекомендуют именно 4 пробела, а не, скажем, 2?
  • — Как быть, если в проекте принят другой стиль и он не совпадает с PEP 8?
  • — Расскажи про различия между PEP 8 и стилем, который использует black (например, длина строки).

Готовьтесь к собеседованию с ENIGMA AI

AI-суфлёр подсказывает ответы прямо на собеседовании в реальном времени — незаметно для интервьюера.

Скачать приложение