Записки программиста, обо всем и ни о чем. Но, наверное, больше профессионального.

2014-09-04

PEP 8, Code lay-out

Изучаем PEP 8 по частям. Часть 3, Code lay-out.
Излагаю смысл своими словами.

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

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

Длинное выражение условия в «if», разбитое на несколько строк, выравнивать можно по разному, хотя оно автоматически получается сдвинутым на 4 позиции, ибо «if (» содержит 4 символа.

Закрывающие скобки в многострочном коде могут быть выровнены по первому символу сдвинутого блока, а могут — по первому символу начала всей конструкции.

Не используйте строки длиннее чем 79 буков. Для емких докстрингов и комментариев используйте длину строки в 72 буквы. 79 выбрано, чтобы у автоматических врапперов не было соблазна сделать перенос строки (80 ± 1).

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

Если в строке есть бинарный оператор, разрывайте строку после него, никак не перед.

Отбивайте функции верхнего уровня (в модуле) и определения классов двумя пустыми строками.

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

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

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

Текст кода должен быть в кодировке UTF-8.

Идентификаторы записываются только в ASCII. Используйте в коде только английские слова и текст в ASCII, по возможности.

Импорт (import) нужно разбивать на отдельные строки, по одному импорту на строке.

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

Импорты сортируются и группируются по порядку: stdlib, third party, local.
Между группами импортов вставлять пустую строку.

Рекомендованы абсолютные импорты.
Однако, допустимы явные относительные импорты, если иначе получается слишком многословно.

Избегайте импортов «*» wildcard.




original post http://vasnake.blogspot.com/2014/09/pep-8-code-lay-out.html

Комментариев нет:

Отправить комментарий

Архив блога

Ярлыки

linux (241) python (191) citation (186) web-develop (170) gov.ru (159) video (124) бытовуха (115) sysadm (100) GIS (97) Zope(Plone) (88) бурчалки (84) Book (83) programming (82) грабли (77) Fun (76) development (73) windsurfing (72) Microsoft (64) hiload (62) internet provider (57) opensource (57) security (57) опыт (55) movie (52) Wisdom (51) ML (47) driving (45) hardware (45) language (45) money (42) JS (41) curse (40) bigdata (39) DBMS (38) ArcGIS (34) history (31) PDA (30) howto (30) holyday (29) Google (27) Oracle (27) tourism (27) virtbox (27) health (26) vacation (24) AI (23) Autodesk (23) SQL (23) humor (23) Java (22) knowledge (22) translate (20) CSS (19) cheatsheet (19) hack (19) Apache (16) Klaipeda (15) Manager (15) web-browser (15) Никонов (15) functional programming (14) happiness (14) music (14) todo (14) PHP (13) course (13) scala (13) weapon (13) HTTP. Apache (12) SSH (12) frameworks (12) hero (12) im (12) settings (12) HTML (11) SciTE (11) USA (11) crypto (11) game (11) map (11) HTTPD (9) ODF (9) Photo (9) купи/продай (9) benchmark (8) documentation (8) 3D (7) CS (7) DNS (7) NoSQL (7) cloud (7) django (7) gun (7) matroska (7) telephony (7) Microsoft Office (6) VCS (6) bluetooth (6) pidgin (6) proxy (6) Donald Knuth (5) ETL (5) NVIDIA (5) Palanga (5) REST (5) bash (5) flash (5) keyboard (5) price (5) samba (5) CGI (4) LISP (4) RoR (4) cache (4) car (4) display (4) holywar (4) nginx (4) pistol (4) spark (4) xml (4) Лебедев (4) IDE (3) IE8 (3) J2EE (3) NTFS (3) RDP (3) holiday (3) mount (3) Гоблин (3) кухня (3) урюк (3) AMQP (2) ERP (2) IE7 (2) NAS (2) Naudoc (2) PDF (2) address (2) air (2) british (2) coffee (2) fitness (2) font (2) ftp (2) fuckup (2) messaging (2) notify (2) sharepoint (2) ssl/tls (2) stardict (2) tests (2) tunnel (2) udev (2) APT (1) Baltic (1) CRUD (1) Canyonlands (1) Cyprus (1) DVDShrink (1) Jabber (1) K9Copy (1) Matlab (1) Portugal (1) VBA (1) WD My Book (1) autoit (1) bike (1) cannabis (1) chat (1) concurrent (1) dbf (1) ext4 (1) idioten (1) join (1) krusader (1) license (1) life (1) migration (1) mindmap (1) navitel (1) pneumatic weapon (1) quiz (1) regexp (1) robot (1) science (1) seaside (1) serialization (1) shore (1) spatial (1) tie (1) vim (1) Науру (1) крысы (1) налоги (1) пианино (1)