一、Python代碼規範 - 參考
[1.] Python 編碼規範 - 國內整理版(Google)
[2.] Google Python Style Guide
二、重點關注項
0. 命名
注意
避免使用項
- 單字符名稱, 除了計數器和迭代器.
- 包/模塊名中的連字符(-)
- 雙下劃線開頭並結尾的名稱(Python保留, 例如__init__)
命名約定
- 所謂"內部(Internal)"表示僅模塊內可用, 或者, 在類內是保護或私有的.
- 用單下劃線(_)開頭表示模塊變量或函數是protected的(使用import * from時不會包含).
- 用雙下劃線(__)開頭的實例變量或方法表示類內私有.
- 對類名使用大寫字母開頭的單詞(如CapWords, 即Pascal風格), 但是模塊名應該用小寫加下劃線的方式(如lower_with_under.py).
模塊命名
- 儘量使用小寫(首字母小寫)
- 儘量不要使用下劃線(除非是多個單詞,且數量不多的情況)
類名命名
- 使用駝峯(CamelCase)命名風格(首字母大寫)
- 私有類可用一個下劃線開頭
- 將相關的類和頂級函數放在同一個模塊裏.
函數命名
- 函數名一律小寫(如有多個單詞,用下劃線隔開)
- 私有函數在函數前加一個下劃線
變量/常量名
- 變量名儘量小寫(如有多個單詞,使用下劃線隔開)
- 常亮採用大寫(如有多個單詞,使用下劃線隔開)
1. 分號
行尾不使用分號,一條命令對應一行
2. 行和語句
- 每個語句獨佔一行
- 長度一般不要超過80個字符
- 一般不使用反斜槓 \ 連接行(雖然可以使用)
- Python會自動將 圓括號、中括號 和 花括號 中的行隱式地連接起來
- 可以用該特性連接長語句,eg.
foo_bar(self, width, height, color='black', design=None, x='foo',
emphasis=None, highlight=0)
3. 縮進
- 用4個空格來縮進代碼
- 絕不用tab
- tab和空格之間禁止混用
4. 括號
- 語句中慎用、少用,除非用於連接
5. 空行
- 頂級定義之間(函數/類)空兩行
- 方法定義之間空一行
6. 空格
- 按照標準的排版規範來使用標點兩邊的空格
- 括號內不要使用空格
7. 註釋
- 文檔字符串
- 使用三重雙引號"""( PEP-257 )來註釋.
一個文檔字符串應該這樣組織:
- 1.第一行以句號、問號或驚歎號結尾的概述(或者該文檔字符串單純只有一行).
- 2.然後是一個空行.
- 3.接着是文檔字符串剩下的部分, 它應該與文檔字符串的第一行的第一個引號對齊.
類的註釋示例
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, likes_spam=False):
"""Inits SampleClass with blah."""
self.likes_spam = likes_spam
self.eggs = 0
def public_method(self):
"""Performs operation blah."""