Готовый перевод Style Guide for Python Code: Code lay-out
Отступы
Используйте 4 пробела на каждый уровень отступа.
Для очень старого кода, который вы не хотите разгребать, можете продолжать использовать 8-ми пробельные табуляции.
Табуляции или пробелы?
Никогда не смешивайте табуляции и пробелы.
Самый популярный способ отступа Python кода -- использование только пробелов.
Второй по популярности способ -- использование только табуляций.
Код, для отступа которого использовалась смесь из пробелов и табуляций, должен быть преобразован на использование исключительно пробелов.
При вызове интерпретатора командной строки Python с опцией -t, он (интерпретатор) выдаёт предупреждения о коде, который незаконно использует смесь из табуляций и пробелов.
Когда используется опция -tt эти предупреждения становятся ошибками.
Эти опции крайне рекомендованны!
Для новых проектов настоятельно рекомендуется использовать только пробелы нежели табуляции.
Многие редакторы обладают функциями, которые позволяют легко управляться с отступами.
Максимальная длина строки
Ограничивайте все строки максимум до 79 символов.
Всё ещё существует множество устройств вокруг, ограниченных 80 символьными строками. К тому же, ограничение окон в 80 символов позволяет держать несколько окон бок о бок.
Перенос строк на таких устройствах обычно нарушает визуальную структуру кода, делая его более сложным для понимания.
Поэтому, пожалуйста ограничивайте строки 79 символами.
Для длинных блоков текста, таких как строки документации или комментарии, рекомендуется ограничение длины до 72 символов.
Предпочитаемый способ переноса длинных строк - использование предполагаемого Python'ом продолжения строк внутри скобок (круглых, квадратных и фигурных).
Если необходимо, вы можете добавить дополнительную пару скобок вокруг выражения, но иногда использование обратного слэша выглядит лучше.
Убедитесь, что отступ у продолженной строки установлен должным образом.
Предпочитаемое место для разрыва строки в районе бинарного оператора - *после* оператора, не перед ним. Некоторые примеры:
# Пример: class Rectangle(Blob)
Пустые строки
Разделяйте функции верхнего уровня и определения классов двумя пустыми строками.
Определения методов внутри классов разделяются одной пустой строкой.
Дополнительные пустые строки могут использоваться (в небольшом количестве для выделения групп связанных функций.
Пустые строки могут быть опущены между группы связанных однострочников (например, набор реализаций пустышек).
Используйте пустые строки в функциях (в небольшом количестве) для выделения логических секций.
Python воспринимает символ подачи бланка control-L (т.е. ^L) как пробел.
Многие инструменты рассматривают эти символы как разделители страниц, так что вы можете использовать его для разбиения на страницы связанных разделов вашего файла.
Кодировки (PEP 263)
Код в основном дистрибутиве Python должен всегда использовать кодировку ASCII или Latin-1 (также известная, как ISO-8859-1)
Для Python 3.0 и выше, кодировка UTF-8 имеет предпочтение, нежели Latin-1 (см. PEP 3120).
Файлы использующие ASCII (или UTF-8, в случае Python 3.0) не должны содержать указание кодировки.
Latin-1 (или UTF-8) должны использоваться только в случае необходимости упоминания в комментарии или строке документации имени автора, требующего Latin-1, иначе рекомендуемый способ включения не ASCII данных - использование эскейп-последовательностей \x, \u или \U.
Для Python 3.0 и выше следующая политика предписана для стандартной библиотеки (см. PEP 3131):
Все идентификаторы в стандартной библиотеке Python ОБЯЗАНЫ использовать только ASCII символы и ДОЛЖНЫ использовать английские слова где это возможно (во многих случаях используются аббревиатуры и технические тремины, не являющиеся английскими).
Кроме того, строковые значения и комментарии также должны использовать ASCII.
Единственные исключения - это (а) тестовые случаи проверяющие функции связанные с не ASCII символами и (б) имена авторов.
Авторы чьи имена не основаны на латинском алфавите ОБЯЗАНЫ предоставлять латинскую транслитерацию их имён.
Проектам с открытым исходным кодом с глобальной аудиторией предлагается следовать аналогичной политике.
Переведено на Нотабеноиде
http://notabenoid.org/book/1336/5346
Переводчики: Guria, svartalf
Настройки
Готово:
