Style Guide for Python Code: Code lay-out
| Английский оригинал | Перевод на русский | |
|---|---|---|
Сожалеем, но текст оригинала доступен только зарегистрированным пользователям. |
Отступы Guria 12.03.09 в 13:37 |
|
|
Используйте 4 пробела на каждый уровень отступа. Guria 12.03.09 в 13:38 |
||
|
Для очень старого кода, который вы не хотите разгребать, можете продолжать использовать 8-ми пробельные табуляции. Guria 12.03.09 в 13:40 |
+1 | |
|
Табуляции или пробелы? svartalf 17.02.09 в 14:09 |
||
|
Никогда не смешивайте табуляции и пробелы. svartalf 17.02.09 в 14:09 |
||
|
Самый популярный способ отступа Python кода -- использование только пробелов. Guria 12.03.09 в 13:59 |
||
|
Второй по популярности способ -- использование только табуляций. Guria 12.03.09 в 14:00 |
||
|
Код, для отступа которого использовалась смесь из пробелов и табуляций, должен быть преобразован на использование исключительно пробелов. Guria 12.03.09 в 14:04 |
||
|
При вызове интерпретатора командной строки Python с опцией -t, он (интерпретатор) выдаёт предупреждения о коде, который незаконно использует смесь из табуляций и пробелов. Guria 12.03.09 в 14:09 |
+1 | |
|
Когда используется опция -tt эти предупреждения становятся ошибками. Guria 12.03.09 в 14:11 |
||
|
Эти опции крайне рекомендованны! Guria 12.03.09 в 14:11 |
||
|
Для новых проектов настоятельно рекомендуется использовать только пробелы нежели табуляции. Guria 12.03.09 в 14:13 |
+1 | |
|
Многие редакторы обладают функциями, которые позволяют легко управляться с отступами. Guria 12.03.09 в 14:16 |
+1 | |
|
Максимальная длина строки Guria 12.03.09 в 14:18 |
||
|
Ограничивайте все строки максимум до 79 символов. Guria 12.03.09 в 14:19 |
||
|
Всё ещё существует множество устройств вокруг, ограниченных 80 символьными строками. К тому же, ограничение окон в 80 символов позволяет держать несколько окон бок о бок. Guria 12.03.09 в 14:23 |
||
|
Перенос строк на таких устройствах обычно нарушает визуальную структуру кода, делая его более сложным для понимания. Guria 12.03.09 в 14:25 |
||
|
Поэтому, пожалуйста ограничивайте строки 79 символами. Guria 12.03.09 в 14:26 |
||
|
Для длинных блоков текста, таких как строки документации или комментарии, рекомендуется ограничение длины до 72 символов. Guria 12.03.09 в 14:29 |
||
|
Предпочитаемый способ переноса длинных строк - использование предполагаемого Python'ом продолжения строк внутри скобок (круглых, квадратных и фигурных). Guria 12.03.09 в 14:34 |
+1 | |
|
Если необходимо, вы можете добавить дополнительную пару скобок вокруг выражения, но иногда использование обратного слэша выглядит лучше. Guria 12.03.09 в 14:36 |
||
|
Убедитесь, что отступ у продолженной строки установлен должным образом. Guria 12.03.09 в 14:38 |
||
|
Предпочитаемое место для разрыва строки в районе бинарного оператора - *после* оператора, не перед ним. Некоторые примеры: Guria 12.03.09 в 14:42 |
||
|
Пустые строки Guria 12.03.09 в 14:42 |
||
|
Разделяйте функции верхнего уровня и определения классов двумя пустыми строками. Guria 12.03.09 в 14:43 |
||
|
Определения методов внутри классов разделяются одной пустой строкой. Guria 12.03.09 в 14:44 |
||
|
Дополнительные пустые строки могут использоваться (в небольшом количестве для выделения групп связанных функций. Guria 12.03.09 в 14:46 |
||
|
Пустые строки могут быть опущены между группы связанных однострочников (например, набор реализаций пустышек). Guria 12.03.09 в 14:49 |
||
|
Используйте пустые строки в функциях (в небольшом количестве) для выделения логических секций. Guria 12.03.09 в 14:54 |
||
|
Python воспринимает символ подачи бланка control-L (т.е. ^L) как пробел. Guria 12.03.09 в 14:58 |
+1 | |
|
Многие инструменты рассматривают эти символы как разделители страниц, так что вы можете использовать его для разбиения на страницы связанных разделов вашего файла. Guria 12.03.09 в 15:02 |
||
|
Кодировки (PEP 263) svartalf 17.02.09 в 14:09 |
||
|
Код в основном дистрибутиве Python должен всегда использовать кодировку ASCII или Latin-1 (также известная, как ISO-8859-1) Guria 12.03.09 в 15:11 |
||
|
Для Python 3.0 и выше, кодировка UTF-8 имеет предпочтение, нежели Latin-1 (см. PEP 3120). Guria 12.03.09 в 15:13 |
||
|
Файлы использующие ASCII (или UTF-8, в случае Python 3.0) не должны содержать указание кодировки. Guria 13.03.09 в 10:26 |
||
|
Latin-1 (или UTF-8) должны использоваться только в случае необходимости упоминания в комментарии или строке документации имени автора, требующего Latin-1, иначе рекомендуемый способ включения не ASCII данных - использование эскейп-последовательностей \x, \u или \U. Guria 13.03.09 в 10:35 |
+1 | |
|
Для Python 3.0 и выше следующая политика предписана для стандартной библиотеки (см. PEP 3131): Guria 13.03.09 в 10:39 |
||
|
Все идентификаторы в стандартной библиотеке Python ОБЯЗАНЫ использовать только ASCII символы и ДОЛЖНЫ использовать английские слова где это возможно (во многих случаях используются аббревиатуры и технические тремины, не являющиеся английскими). Guria 13.03.09 в 10:44 |
+1 | |
|
Кроме того, строковые значения и комментарии также должны использовать ASCII. Guria 13.03.09 в 10:52 |
||
|
Единственные исключения - это (а) тестовые случаи проверяющие функции связанные с не ASCII символами и (б) имена авторов. Guria 13.03.09 в 10:56 |
||
|
Авторы чьи имена не основаны на латинском алфавите ОБЯЗАНЫ предоставлять латинскую транслитерацию их имён. Guria 13.03.09 в 10:57 |
||
|
Проектам с открытым исходным кодом с глобальной аудиторией предлагается следовать аналогичной политике. Guria 13.03.09 в 10:59 |
