Categories: Python

PEP 8: Главное о стиле кода

Этот пост является краткой выжимкой стилевых правил для языка Python — PEP8.

Итак PEP8 это документ, описывающий общепринятый стиль написания кода на языке Python. Далее представлен короткий вариант PEP8, который состоит из 25 правил.

  1. На каждый уровень отступа используйте по 4 пробела.  Табуляция используется лишь для поддержки старого кода, где они уже используются.
  2. Длину строки рекомендуется ограничить 79 символами. Предпочтительный способ переноса длинных строк — использование подразумевающегося продолжения строки между обычными, квадратными и фигурными скобками. Так же для переноса разрешается использовать обратный слеш («\»).
  3. Функции верхнего уровня и определения классов отделяются двумя пустыми строками. Определения методов внутри класса разделяются одной пустой строкой. Дополнительные пустые строки используются для логического разделения.
  4. Кодировка в Python 2 должна быть ASCII. А в  Python 3  — UTF-8.
  5. Для каждого импорта — отдельная строка. Порядок расположения — стандартные библиотеки, сторонние библиотеки, локальные модули приложения. Импорты всегда помещаются в начале файла, сразу после комментариев к модулю и строк документации, и перед объявлением констант. Используйте пустую строку для отделения групп импортов.
  6. Избегайте лишних пробелов внутри круглых, квадратных или фигурных скобок; перед запятой, точкой с запятой или двоеточием. Сразу перед открывающей скобкой, после которой начинается список аргументов при вызове функции. Не используйте больше одного пробела вокруг любого оператора для того, чтобы выровнять его с другим.
  7. Используйте одиночный пробел с каждой стороны у операторы присваивания(=, +=, -=), операторов сравнения (==, <, >, !=, <>, <=, >=, in, not in, is, is not) и логических операторов (and, or, not). Не используйте пробелы вокруг знака =, если он используется для обозначения именованного аргумента или значения параметров по умолчанию.
  8. Комментарии, которые противоречат коду, хуже, чем их отсутствие. Всегда исправляйте комментарии при обновлении кода. По возможности пишите комментарии на английском языке. Каждая строчка такого блока должна начинаться с символа # и одного пробела после него.
  9. Пишите документацию для всех public модулей, функций, классов, методов.
  10. Никогда не используйте символы l (маленькая латинская буква «L»), O (заглавная латинская буква «o») или I (заглавная латинская буква «i») в качестве имен.
  11. Модули должны иметь короткие имена, состоящие из маленьких букв.
  12. Имена классов должны обычно следовать соглашению CapitalizedWords (слова с заглавными буквами).
  13. Имена функций должны состоять из маленьких букв, а слова разделяться символами подчеркивания(lower_case_with_underscores).
  14. Для имен методов и переменных экземпляров классов используйте тот же стиль, что и для имен функций.
  15. Всегда используйте self в качестве первого аргумента метода экземпляра объекта. Всегда используйте cls в качестве первого аргумента метода класса.
  16. Обязательно решите, каким должен быть метод класса или экземпляра класса — public или не-public. Если вы сомневаетесь, выберите не-public.
  17. Код должен быть написан так, чтобы не зависеть от разных реализаций языка.
  18. Сравнения с None должны обязательно выполняться с использованием операторов is или is not, а не с помощью операторов сравнения.
  19. Наследуйте свой класс исключения от Exception. Перехватывайте конкретные ошибки вместо простого выражения except.
  20. Всегда используйте выражение def, а не присваивание лямбда-выражения к имени
  21. Постарайтесь заключать в каждую конструкцию try…except минимум кода, чтобы легче отлавливать ошибки.
  22. Используйте строковые методы вместо модуля string. Используйте ».startswith() и ».endswith() вместо вырезки из строк для проверки префиксов и суффиксов.
  23. Сравнение типов объектов нужно делать с помощью isinstance().
  24. Для последовательностей (строк, списков, кортежей) используйте тот факт, что пустая последовательность есть false.
  25. Не сравнивайте логические типы с True и False с помощью == .
admin

Share
Published by
admin

Recent Posts

Лучшие дистрибутивы Linux

Если говорить о том, какие лучшие дистрибутивы Linux мы знаем, то этот список может быть…

1 неделя ago

Лучшие браузеры для Ubuntu

Хотя Ubuntu и поставляется со встроенным обозревателем Firefox многие пользователи считают что это не самая…

1 неделя ago

Установка Remmina Ubuntu 16.04 или 16.10

Что такое Remmina? Remmina — это совершенно бесплатный и свободный клиент так называемого удаленного рабочего…

1 неделя ago

Плюсы Ubuntu

Как мы знаем, Ubuntu это самая популярная сборка из систем на базе ядра Linux. У…

1 неделя ago

Выбираем ноутбук для Linux

Выбор ноутбука для каждого пользователя это довольно кропотливый процесс. Люди стараются подобрать ноутбук который будет…

1 неделя ago

Установка Linux рядом с Windows 10

Если вы решили ознакомиться с операционной системой Linux более детально и задались вопросом как установить…

1 неделя ago