Ответ
PEP 8 (Python Enhancement Proposal 8) — это официальное руководство по стилю написания кода на Python. Его главная цель — улучшение читаемости и единообразия кода, написанного разными разработчиками.
Следование PEP 8 делает код более поддерживаемым и понятным, так как он соответствует общепринятым конвенциям в сообществе Python.
Ключевые рекомендации PEP 8:
- Отступы: Использовать 4 пробела на уровень отступа. Не использовать табы.
- Длина строки: Ограничивать длину строки 79 символами.
- Импорты: Импорты должны быть в начале файла и сгруппированы в следующем порядке: стандартная библиотека, сторонние библиотеки, локальные приложения.
- Пробелы: Использовать пробелы вокруг операторов (
x = 1), после запятых ([1, 2, 3]), но не внутри скобок (print(x)). - Именование:
snake_caseдля функций и переменных (my_variable).UPPER_SNAKE_CASEдля констант (MAX_CONNECTIONS).CamelCase(илиPascalCase) для классов (MyClass).
Инструменты для автоматизации:
- Линтеры (проверяют на соответствие):
flake8,pylint. - Форматтеры (автоматически исправляют код):
black,autopep8.
Пример кода, отформатированного по PEP 8:
# Константа в верхнем регистре
MAX_OVERFLOW = 100
class MyAwesomeClass:
def __init__(self, name: str):
# Переменная в snake_case
self.user_name = name
def calculate_sum(self, first_value: int, second_value: int) -> int:
"""Возвращает сумму двух чисел."""
# Пробелы вокруг операторов
total = first_value + second_value
return total Ответ 18+ 🔞
А, ну вот, блядь, опять про этот ваш PEP 8 начинают. Слушай, как будто без этого кода не пишется, ёпта! Но, похуй, раз уж спросили — сейчас разжую, как есть.
Представь, ты заходишь в квартиру к какому-нибудь пидарасу шерстяному, который носки по углам раскидал, кастрюли в кровати стоят, а на столе — три пустые банки из-под энергетика и дохлый таракан. Вот так же выглядит код, написанный без правил. А PEP 8 — это как твоя бабка с веником, которая приходит и начинает орать: «Сука, разбросал всё, манда с ушами! Ставь пробелы вокруг операторов, выравнивай отступы, а то получишь вилкой в глаз!».
Ну, и что там за правила, спросишь ты? Да нихуя сложного.
- Отступы: Четыре пробела. Четыре, Карл! Не таб, не два, не пять. Четыре. Как будто идешь строевым шагом: раз-два-три-четыре, новая строка кода.
- Длина строки: Не больше 79 символов. Это чтобы не приходилось, блядь, головой из стороны в сторону мотать, как будто на теннисном матче. Уложи свою мысль в лимит, ёбаный рот этого казино!
- Именование: Тут всё просто, как три копейки.
- Переменные и функции —
snake_case, то есть всё маленькими буквами и через подчёркивание.my_super_variable,calculate_pizdets. - Константы —
UPPER_SNAKE_CASE. Кричи на них, блядь, они же неизменяемые!MAX_AMOUNT_OF_BULLSHIT. - Классы —
CamelCase. С большой буквы и горбом посередине, как верблюд.MyBeautifulClass.
- Переменные и функции —
А чтобы не ебаться с этим вручную, умные люди придумали костыли. То есть, инструменты.
- Линтеры (
flake8,pylint): Это как занудный препод, который ходит за тобой и тычет пальцем: «Здесь пробела не хватает, здесь строка длинная, а здесь, сука, ты вообще непонятно что написал, переделывай!». - Форматтеры (
black,autopep8): А это уже баба с веником. Она не кричит, она просто берёт и подметает за тобой. Запустил — и код сам стал красивым, хоть в рамку вешай. Black вообще принципиальный — он форматирует так, как считает нужным, и ни на йоту иначе. С ним не поспоришь.
Ну и смотри, как это выглядит на практике, когда всё по правилам:
# Константа, на неё орем
MAX_OVERFLOW = 100
class MyAwesomeClass:
def __init__(self, name: str):
# Переменная, ползёт, как змея
self.user_name = name
def calculate_sum(self, first_value: int, second_value: int) -> int:
"""Возвращает сумму двух чисел. Или пиздец, если что-то не так."""
# Пробелы вокруг плюса, всё чётко
total = first_value + second_value
return total
Вот и вся магия. Сначала кажется, что это ебаный бред и занудство, но потом, когда приходишь на проект, где десять человек код писали, а он читается, как одна книга — понимаешь, что бабка с веником была права. Чистота, блядь, залог не только здоровья, но и того, что тебя не пошлют нахуй при первом же code review.