Style Guide for Python Code: Code lay-out

Английский оригинал Перевод на русский

Сожалеем, но текст оригинала доступен только зарегистрированным пользователям.

Отступы

Guria 12.03.09 в 13:37

0

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

Guria 12.03.09 в 13:38

0

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

Guria 12.03.09 в 13:40

0
+1

Табуляции или пробелы?

svartalf 17.02.09 в 14:09

0

Никогда не смешивайте табуляции и пробелы.

svartalf 17.02.09 в 14:09

0

Самый популярный способ отступа Python кода -- использование только пробелов.

Guria 12.03.09 в 13:59

0

Второй по популярности способ -- использование только табуляций.

Guria 12.03.09 в 14:00

0

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

Guria 12.03.09 в 14:04

0

При вызове интерпретатора командной строки Python с опцией -t, он (интерпретатор) выдаёт предупреждения о коде, который незаконно использует смесь из табуляций и пробелов.

Guria 12.03.09 в 14:09

0
+1

Когда используется опция -tt эти предупреждения становятся ошибками.

Guria 12.03.09 в 14:11

0

Эти опции крайне рекомендованны!

Guria 12.03.09 в 14:11

0

Для новых проектов настоятельно рекомендуется использовать только пробелы нежели табуляции.

Guria 12.03.09 в 14:13

0
+1

Многие редакторы обладают функциями, которые позволяют легко управляться с отступами.

Guria 12.03.09 в 14:16

0
+1

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

Guria 12.03.09 в 14:18

0

Ограничивайте все строки максимум до 79 символов.

Guria 12.03.09 в 14:19

0

Всё ещё существует множество устройств вокруг, ограниченных 80 символьными строками. К тому же, ограничение окон в 80 символов позволяет держать несколько окон бок о бок.

Guria 12.03.09 в 14:23

0

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

Guria 12.03.09 в 14:25

0

Поэтому, пожалуйста ограничивайте строки 79 символами.

Guria 12.03.09 в 14:26

0

Для длинных блоков текста, таких как строки документации или комментарии, рекомендуется ограничение длины до 72 символов.

Guria 12.03.09 в 14:29

0

Предпочитаемый способ переноса длинных строк - использование предполагаемого Python'ом продолжения строк внутри скобок (круглых, квадратных и фигурных).

Guria 12.03.09 в 14:34

0
+1

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

Guria 12.03.09 в 14:36

0

Убедитесь, что отступ у продолженной строки установлен должным образом.

Guria 12.03.09 в 14:38

0

Предпочитаемое место для разрыва строки в районе бинарного оператора - *после* оператора, не перед ним. Некоторые примеры:
# Пример: class Rectangle(Blob)

Guria 12.03.09 в 14:42

0

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

Guria 12.03.09 в 14:42

0

Разделяйте функции верхнего уровня и определения классов двумя пустыми строками.

Guria 12.03.09 в 14:43

0

Определения методов внутри классов разделяются одной пустой строкой.

Guria 12.03.09 в 14:44

0

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

Guria 12.03.09 в 14:46

0

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

Guria 12.03.09 в 14:49

0

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

Guria 12.03.09 в 14:54

0

Python воспринимает символ подачи бланка control-L (т.е. ^L) как пробел.

Guria 12.03.09 в 14:58

0
+1

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

Guria 12.03.09 в 15:02

0

Кодировки (PEP 263)

svartalf 17.02.09 в 14:09

0

Код в основном дистрибутиве Python должен всегда использовать кодировку ASCII или Latin-1 (также известная, как ISO-8859-1)

Guria 12.03.09 в 15:11

0

Для Python 3.0 и выше, кодировка UTF-8 имеет предпочтение, нежели Latin-1 (см. PEP 3120).

Guria 12.03.09 в 15:13

0

Файлы использующие ASCII (или UTF-8, в случае Python 3.0) не должны содержать указание кодировки.

Guria 13.03.09 в 10:26

0

Latin-1 (или UTF-8) должны использоваться только в случае необходимости упоминания в комментарии или строке документации имени автора, требующего Latin-1, иначе рекомендуемый способ включения не ASCII данных - использование эскейп-последовательностей \x, \u или \U.

Guria 13.03.09 в 10:35

0
+1

Для Python 3.0 и выше следующая политика предписана для стандартной библиотеки (см. PEP 3131):

Guria 13.03.09 в 10:39

0

Все идентификаторы в стандартной библиотеке Python ОБЯЗАНЫ использовать только ASCII символы и ДОЛЖНЫ использовать английские слова где это возможно (во многих случаях используются аббревиатуры и технические тремины, не являющиеся английскими).

Guria 13.03.09 в 10:44

0
+1

Кроме того, строковые значения и комментарии также должны использовать ASCII.

Guria 13.03.09 в 10:52

0

Единственные исключения - это (а) тестовые случаи проверяющие функции связанные с не ASCII символами и (б) имена авторов.

Guria 13.03.09 в 10:56

0

Авторы чьи имена не основаны на латинском алфавите ОБЯЗАНЫ предоставлять латинскую транслитерацию их имён.

Guria 13.03.09 в 10:57

0

Проектам с открытым исходным кодом с глобальной аудиторией предлагается следовать аналогичной политике.

Guria 13.03.09 в 10:59

0
Минутку...