原文地址http://python.net/~goodger/projects/pycon/2007/idiomatic/handout.html,我挑一些自認為的重點翻譯過來,總之,代碼是寫給人看的,不是寫給機器執行的。
(1:每個縮排層級增加4個空格;
(2:不要使用Tab鍵(我就一直使用Tab鍵,很方便,這條有點不合理);
(3:不要混用空格和Tab鍵;
(4:函數之間一個空行;
(5:類之間兩個空行;
(1:在dicts,lists,tuples,函數函數的“,”號之後,留一個空格;在dicts的“:”後面留一個空格;
(2:賦值和比較的兩次各留一個空格;
(3:緊挨右括弧或者緊挨左括弧的兩邊不要留白,函數參數列表前不要留白;
(4:docstrings內不要留白
(1:joined_lower,函數、方法、和屬性使用;
(2:joined_lower 或者 ALL_CAPS,適合常量的定義(個人趨向於ALL_CAPS);
(3:StudlyCaps,類的命名;
(4:camelCase,一般不要使用,除非是延續舊代碼習慣;
(5:屬性 interface, _internal, __private,盡量避免使用__private,原因不翻譯了,好長的,照做就OK了。
(1:保持一行在80個字元以內;
(2:(), [], {} 內有隱藏的跨行串連功能;
def __init__(self, first, second, third,
fourth, fifth, sixth):
output = (first + second + third
+ fourth + fifth + sixth)
(3:其他情況用"\"做串連用,注意,"\"必須是此行的最後一個字母,其後有任何字元串連的功能將失效。
(1:緊鄰的字串將被解析器合并為一個字串;
(2:r首碼的字串不進行任何轉義;
(3:字串變數的串連需要用"+";
(4:跨行的字串使用 """ """或者''' '''。
文檔字串(docstring)用來說明函數的用途和用法(給使用者看)
(1:解釋函數的功能;
(2:介紹參數,傳回值和可能拋出的異常;
(3:最好說明調用方法;尤其當這個函數有一個很耦合的調用者
注釋用來說明函數的實現方法,用來維護代碼(給開發和維護代碼人看)
(1:# !!! BUG: ...
(2:# !!! FIX: This is a hack
(3:# ??? Why is this here?