Загрузка...

Гайд по оформлению кода на Python: PEP8

Алексанян Андрон CEO IT Resume

Когда вы пишите код на Python, важно создавать читаемый, понятный и поддерживаемый код. Но как сделать так, чтобы ваш код был действительно легким для восприятия и соответствовал лучшим практикам? Здесь на помощь приходит PEP8 — официальный стиль кодирования Python, который определяет правила оформления и написания кода. В этой статье мы разберем основные рекомендации из PEP8 и узнаем, как их применять на практике, чтобы ваш Python-код не только выполнял свою задачу, но и был понятен вашим коллегам (и вам через полгода).

Отступы

  • Используйте 4 пробела на каждый уровень отступа.

  • Дополнительные строки должны выравнивать обернутые элементы.

    Вариант 1 вертикально:

    foo = function_name(var_one, var_two, var_three, var_four)

    Вариант 2 с отступом (тогда в первой строке не должно быть аргументов):

    foo = function_name( var_one, var_two, var_three, var_four)
  • Закрывающие скобки в многострочных конструкциях лучше располагать под первым непробельным символом последней строки:

    my_list = [ 1,2,3, 4,5,6, ]
  • Также закрывающие скобки могут быть выровнены под первым символом строки, которая запускает многострочную конструкцию:

    my_list = [ 1,2,3, 4,5,6, ]

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

  • Ограничьте все строки до 79 символов.
  • Строки с текстом (документация или комментарии) должны быть ограничены 72 символами.
  • Длинные строки можно разбить на несколько строк, заключив выражения в круглые скобки.

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

  • Отделите определения функций и классов верхнего уровня двумя пустыми строками.
  • Отделите методы внутри класса одной пустой строкой.
  • Дополнительные пустые строки могут использоваться (в небольшом количестве) для разделения групп связанных функций.
  • Пустая строка должна быть между каждой группой импорта.

Импорт

  • Импорт должен быть в отдельных строках:

    # Верно: import os import sys
    # Неверно: import sys, os

    Хотя можно и так:

    from subprocess import Popen, PIPE
  • Импорт всегда помещается в начало файла сразу после комментариев и строк документации, а также перед глобальными переменными и константами модуля.

  • Импорты следует группировать в следующем порядке:

    1. Стандартная библиотека импорта.
    2. Связанный сторонний импорт.
    3. Импорт для локального приложения или библиотеки.

Пробелы

Избегайте лишних пробелов:

  • Внутри скобок и перед скобками:

    # Верно: spam(ham[1])
    # Неверно: spam ( ham[ 1 ] )
  • Между запятой и закрывающей скобкой:

    # Верно: foo = (0,)
    # Неверно: bar = (0, )
  • Более одного пробела вокруг оператора присваивания (или другого):

    # Верно: x = 1 y = 2 long_var = 3
    # Неверно: x = 1 y = 2 long_var = 3

Всё понятно?

Тогда примените полученные знания на практике - решите нашу задачу о неубывающем массиве!
Решать задачу!

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

Обычно различают следующие стили именования:

  • b (одна строчная буква)
  • B (одна заглавная буква)
  • lowercase
  • lower_case_with_underscores
  • UPPERCASE
  • UPPER_CASE_WITH_UNDERSCORES
  • CapitalizedWords
  • mixedCase
  • Capitalized_Words_With_Underscores

Имена, которых следует избегать

  • 'l', 'O' или 'I' в качестве односимвольных имен переменных
  • __name__
  • _name
  • name_

Правила именования

  • Пакеты и модули: lowercase, lower_with_underscores
  • Классы: CapitalizedWords
  • Гобальные переменные: lowercase, lower_with_underscores, __all__
  • Функции и переменные: lowercase, lower_with_underscores
  • Аргументы функций и методов: self - первый аргумент для методов экземпляра, cls - первый аргумент методов класса
  • Константы: UPPERCASE, UPPER_WITH_UNDERSCORES

Оформление кода на Python

Пройдите тест и проверьте свои знания!
Решать тест!

Эпилог

Следование этим рекомендациям может показаться не таким уж важным на первых порах, особенно когда код работает и без этого. Однако, как показывает практика, структурированный и аккуратный код не только облегчает работу вам, но и делает его понятным для других разработчиков. Не забывайте: хороший стиль программирования — это не просто вопрос эстетики, это показатель вашего профессионализма.

Python 27.08.2024