一、代碼編排
1.縮進(jìn):使用4個空格縮進(jìn)
2.行長度:每行不要超過80個字符
3.空行:頂級定義之間空兩行盈匾,如函數(shù)或類的定義腾务,方法定義、類定義與第一個方法之間都應(yīng)該空一行削饵。
4.分號:行尾不要有分號岩瘦,也不要用分號將兩條命令放在一行,除非是:1.長的導(dǎo)入模塊語句。2.注釋里的URL.3.可以使用圓括號實現(xiàn)隱式行連接
二窿撬、文檔編排
1.導(dǎo)入:模塊注釋->文檔字符串->導(dǎo)入->模塊全局變量->常量
導(dǎo)入順序:標(biāo)準(zhǔn)庫導(dǎo)入->第三方庫導(dǎo)入->應(yīng)用程序指定庫導(dǎo)入
2.import:不要在一行中import多個庫启昧,一行中只導(dǎo)入一個
三、空格
1.不要在逗號劈伴、分號密末、冒號前加空格,但應(yīng)在他們后面加(除了在行尾)
2.二元操作符(賦值跛璧、比較严里、布爾)兩邊都加空格
3.當(dāng)"="用于指示關(guān)鍵字參數(shù)或默認(rèn)參數(shù)值是,不要再其兩側(cè)使用空格
4.","和"#"和"="不需要對齊追城,因為空格會成為維護(hù)的負(fù)擔(dān)
四刹碾、注釋
總體原則,錯誤的注釋不如沒有注釋座柱。
注釋必須使用英文迷帜,最好是完整的句子物舒,首字母大寫,句后要有結(jié)束符戏锹,結(jié)束符后跟兩個空格冠胯,開始下一句。如果是短語锦针,可以省略結(jié)束符荠察。
1.塊注釋:在一段代碼前增加的注釋。在"#"后加一空格奈搜。段落之間以只有"#"的行間隔割粮。
2.行注釋,在一句代碼后加注釋媚污。進(jìn)來少使用.
3.絕不要描述代碼. 假設(shè)閱讀代碼的人比你更懂Python, 他只是不知道你的代碼要做什么.
五、文檔描述
1.為所有的共有模塊廷雅、函數(shù)耗美、類、方法寫docstrings航缀;非共有的沒有必要商架,但是可以寫注釋(在def的下一行)。
2.如果docstring要換行芥玉,參考如下例子
class SampleClass(object):
"""Summary of class here.
Longer class information....
Longer class information....
Attributes:
likes_spam: A boolean indicating if we like SPAM or not.
eggs: An integer count of the eggs we have laid.
"""
def __init__(self):
"""Inits SampleClass with blah."""
六蛇摸、命名規(guī)范
1.盡量單獨使用小寫字母‘l’,大寫字母‘O’等容易混淆的字母灿巧。
2.模塊名盡量短小赶袄,應(yīng)該用小寫加下劃線的方式(如lower_with_under.py).
3.包命名盡量短小,使用全部小寫的方式抠藕,不可以使用下劃線饿肺。
4.類名使用大寫字母開頭的單詞(如CapWords, 即Pascal風(fēng)格)
5.函數(shù)命名使用全部小寫的方式,可以使用下劃線盾似。
6.變量也用小寫加下劃線的方式敬辣,即this_is_a_variable=1
7.常量命名使用全部大寫的方式,可以使用下劃線零院。
8.類的屬性(方法和變量)命名使用全部小寫的方式溉跃,可以使用下劃線。
9.類的方法第一個參數(shù)必須是self告抄,而靜態(tài)方法第一個參數(shù)必須是cls撰茎。
10.用單下劃線(_)開頭表示模塊變量或函數(shù)是protected的(使用import * from時不會包含).
11.用雙下劃線(__)開頭的實例變量或方法表示類內(nèi)私有.
七、Main:即使是一個打算被用作腳本的文件, 也應(yīng)該是可導(dǎo)入的.
并且簡單的導(dǎo)入不應(yīng)該導(dǎo)致這個腳本的主功能(main functionality)被執(zhí)行
代碼應(yīng)該在執(zhí)行主程序前總是檢查 if __name__ == '__main__'
def main():
...
if __name__ == '__main__':
main()
八玄妈、字符串:
避免在循環(huán)中用+和+=來累加字符串乾吻,可以將每個子串加入列表髓梅,然后再循環(huán)結(jié)束后使用.join連接列表
items = ['<table>']
for last_name, first_name in employee_list:
items.append('<tr><td>%s, %s</td></tr>' % (last_name, first_name))
items.append('</table>')
employee_table = ''.join(items)
同一文件中保持使用字符串引號的一致性
多行字符串使用三重"雙"引號,不過通常使用括號隱式連接
九绎签、其他
括號:寧缺毋濫的使用括號
類:若一個類不繼承自其它類枯饿,就顯式的從object繼承,即使是嵌套類
語句:通常每個語句獨占一行,try/except一定不放在一行
文件和sockets:在文件和sockets結(jié)束時诡必,顯式的關(guān)閉它奢方,推薦with語句管理文件
最后編輯于 :2017.12.03 08:27:15
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者