Пропустить до содержимого

Как использовать/исправить ошибки PEP8?

[

Как писать прекрасный код на Python согласно PEP 8

PEP 8, иногда пишется как PEP8 или PEP-8, это документ, который предоставляет руководство и лучшие практики по как писать код на Python. Он был написан в 2001 году Гвидо ван Россумом, Барри Варсоу и Алиссой Коглан. Основное внимание в PEP 8 уделяется читабельности и консистентности кода на Python.

По окончании этого руководства вы сможете:

  • Писать код на Python, соответствующий PEP 8
  • Понять основной смысл рекомендаций, изложенных в PEP 8
  • Настроить вашу рабочую среду таким образом, чтобы вы могли начать писать код на Python, соответствующий PEP 8

PEP – это сокращение от Python Enhancement Proposal (предложение по улучшению Python), и существует много PEP. Эти документы в основном описывают новые функции, предлагаемые для языка Python, но некоторые PEP также фокусируются на дизайне и стиле и стремятся служить ресурсом для сообщества. PEP 8 является одним из таких стилевых PEP.

В этом руководстве вы ознакомитесь с основными рекомендациями, изложенными в PEP 8. Вам будут представлены темы начального и среднего уровня программирования. Более продвинутые темы можно изучить, прочитав полную документацию PEP 8.

Почему нам нужен PEP 8

”Читаемость важна.”

— Дзен Питона

Как сказал Гвидо ван Россум: “Код читают намного чаще, чем его пишут.” Вы, может быть, потратите несколько минут или весь день, чтобы написать участок кода для обработки аутентификации пользователя. После того, как вы его написали, вы больше никогда не будете писать этот код.

Но открыть и прочитать его вам придется снова. Этот участок кода может остаться частью проекта, над которым вы работаете. Каждый раз, когда вы возвращаетесь к этому файлу, вам придется вспоминать, что делает этот код и почему вы его написали. Поэтому читаемость кода имеет огромное значение.

Рекомендации по выбору имени переменной

Стили именования

В PEP 8 указаны рекомендации по стилю именования переменных в Python. Вот некоторые основные рекомендации:

  • Для имен переменных следует использовать смешанный регистр (lowercase_with_underscores)
  • Имена модулей должны быть написаны в нижнем регистре (lowercase)
  • Имена классов должны использовать CamelCase

Как выбрать имена

Выбор правильных имен переменных на Python – это важная часть создания читаемого и понятного кода. Используйте ясные и описательные имена переменных, которые отражают назначение переменной и суть ее значения.

Например, если у вас есть переменная, которая хранит количество продаж за месяц, вы можете назвать ее monthly_sales. Если у вас есть переменная, которая хранит список пользователей, вы можете назвать ее user_list. Правильный выбор имен переменных помогает другим разработчикам лучше понять ваш код и упрощает поддержку и дальнейшее развитие проекта.

Расположение кода

Пустые строки

PEP 8 рекомендует использовать пустые строки для создания логической структуры в вашем коде. Пустые строки могут использоваться для разделения функций, классов и других блоков кода, чтобы сделать код более читаемым и понятным. Используйте пустые строки, чтобы создать визуальные группы связанного кода.

Например:

def do_something():
print("Step 1")
print("Step 2")
print("Step 3")
print("Step 4")

Здесь пустые строки используются для отделения каждого шага в функции do_something(), что делает код более структурированным.

Максимальная длина строки и перенос строк

PEP 8 рекомендует ограничить максимальную длину строки кода до 79 символов. Если строка кода превышает этот предел, вы можете использовать перенос строки для разделения строки на несколько строк. При этом рекомендуется выравнивать продолжение строки с отступом в 4 пробела от начала линии.

Например:

long_string = ("This is a long string example. "
"It continues on a new line.")

Здесь длинная строка разделена на две строки с помощью скобок и продолжается на новой строке. Это делает код более читаемым и понятным.

Отступы

Табы или пробелы

PEP 8 рекомендует использовать пробелы для создания отступов, а не табуляцию. Рекомендуется использовать 4 пробела для каждого уровня отступа. Использование пробелов вместо табуляции делает код более переносимым между различными текстовыми редакторами и IDE.

Отступы после переноса строки

PEP 8 рекомендует добавлять отступ после переноса строки в тех случаях, когда он логически продолжает предыдущую строку кода. Это позволяет сделать код более читаемым и понятным.

Расположение закрывающей скобки

PEP 8 рекомендует располагать закрывающую скобку на новой строке, когда она является частью конструкции, содержащей открывающую скобку. Это делает код более читаемым и понятным.

Например:

def add_numbers(
number1,
number2,
):
return number1 + number2

Здесь закрывающая скобка после number2 расположена на новой строке, чтобы улучшить читаемость кода.

Комментарии

PEP 8 рекомендует использовать комментарии в коде для объяснения сложной логики, принципа работы или особенностей реализации фрагментов кода. Хорошо размещенные комментарии могут сделать код более понятным для других разработчиков и упростить его сопровождение.

Блочные комментарии

Блочные комментарии используются для объяснения более крупных фрагментов кода или всей функции. Рекомендуется располагать блочные комментарии над блоком кода и начинать их с символа # и одного пробела.

Например:

# This function calculates the average of a list of numbers
def calculate_average(numbers):
total = sum(numbers)
average = total / len(numbers)
return average

Здесь блочный комментарий объясняет назначение функции calculate_average.

Комментарии внутри строки кода

Эти комментарии добавляются внутри строки кода и объясняют отдельные части кода. Рекомендуется располагать комментарии в начале строки с символа # и одного пробела.

Например:

result = number1 + number2 # Add number1 and number2

Здесь комментарий объясняет, что делает строка result = number1 + number2.

Строки документирования

PEP 8 рекомендует использовать строки документирования (docstrings) для документации функций, классов и модулей. Строки документирования должны быть заключены в тройные кавычки, чтобы обозначить их начало и конец.

Например:

def add_numbers(number1, number2):
"""Add two numbers and return the sum."""
return number1 + number2

Здесь строка документирования объясняет назначение функции add_numbers.

Пробелы в выражениях и операторах

PEP 8 также включает рекомендации по использованию пробелов в выражениях и операторах. Между двоичными операторами рекомендуется добавлять один пробел с каждой стороны оператора. Также рекомендуется не добавлять пробелы вокруг знаков = и других операторов, если они используются для указания значений аргументов или ключей в словарях.

Рекомендации по программированию

PEP 8 также содержит рекомендации по программированию в Python. Некоторые из них включают использование исключений вместо возвращения специальных значений, итерацию по элементам списка с помощью цикла for in, использование генераторов списков для создания новых списков и т.д.

Когда игнорировать PEP 8

В редких случаях может возникнуть необходимость игнорировать рекомендации PEP 8. Это может быть связано с ограничениями фреймворка или библиотеки, в которых требуется отступить от стандартного стиля кода. В таких случаях важно принять решение на основе конкретной ситуации.

Советы и трюки для обеспечения соответствия кода PEP 8

Существуют различные инструменты, которые могут помочь вам улучшить соответствие вашего кода PEP 8. Включая “линтеры”, которые анализируют ваш код на соответствие стилю PEP 8, автоформаттеры, которые автоматически форматируют ваш код согласно PEP 8, и совместную работу линтеров и автоформаттеров для настройки интеграции этих инструментов в вашу рабочую среду.

Выводы

PEP 8 предоставляет рекомендации по написанию кода на Python, которые помогают улучшить его читаемость и согласованность. Следуйте руководству PEP 8, чтобы писать прекрасный код на Python и быть лучшим разработчиком.