原址:https://legacy.python.org/dev/peps/pep-0008/python
PEP-8函數
縮進編碼
每級縮進使用4個空格對象
續行應該與被圓括號、花括號、方括號包裹起來的其餘元素對齊,或者使用懸掛縮進繼承
使用懸掛縮進要注意:第一行不能有參數,且應該多一層縮進以便於與續行區分開文檔
右括號回退,右括號應該頂行寫字符串
Tab鍵string
空格是首選的縮進方式,製表符只能用於與一樣適用製表符縮進的代碼保持一致it
單行最大長度io
每行最大長度是79個字符
文檔字符串、註釋等最大寬度是72個字符
通常續行可使用反斜槓,而括號內續行不須要使用反斜槓
空行
頂層函數和類的定義,先後用兩個空行隔開
類裏的方法定義使用一個空行
模塊導入
每一個模塊應該單獨成行
導入老是位於文件頂部,在模塊註釋和文檔字符串以後,在模塊的全局變量與常量以前
導入順序:標準庫 ----- 相關的第三方庫 ----- 本地庫
儘可能避免使用通配符*導入
各個import的組須要用空行隔開
組內的模塊的導入順序按照首字母排列
字符串
單引號與雙引號做用同樣,但必須保證成對出現
建議句子使用雙引號,單詞使用單引號,但不強制
表達式和語句中的空格
各類括號裏面避免空格
逗號、分號和冒號以前避免空格
可是若是冒號做爲分隔符,那麼先後都要加空格
函數調用的左括號以前不能有空格
賦值等操做符先後不能爲了對齊而添加多個空格
函數默認參數使用的賦值符左右省略空格
不要將多句語句寫在同一行,哪怕if等語句中只有一句
註釋:
塊註釋:
使用與代碼相同級別的縮進
註釋的每一行開頭使用一個#和一個空格
塊註釋的內部段落經過只有一個#的空行分隔
行內註釋:
與代碼語句同行,至少要有兩個空格分隔,由#和一個空格開始
謹慎使用
命名規範
包和模塊名儘可能簡短,所有使用小寫字母,模塊名可使用下劃線鏈接,包名不能夠
類名建議使用駝峯體
全局變量名應儘可能只在模塊內部使用
函數名應該爲所有小寫,如下劃線鏈接
常量名應所有使用大寫字母,可使用下劃線
異常名,聽從類名的規則,若是是error的話,以Error爲後綴
編碼建議:
考慮到其餘python實現的效率問題,運算符+應該用.join()方法替代
儘量使用’is’ ’is not’取代’==’
異常類應該繼承自Exception 而不是BaseException
異常中不要使用裸露的except,except後跟具體的exceptions
異常中try的代碼應該儘可能少
使用字符串的方法,而不是string模塊
使用startswith()和endswith()兩個方法替代切片進行序列前綴或後綴的檢查
使用isinstance() 比較對象的類型
空序列類型對象的bool爲False,能夠直接用於if判斷
不要用 ==和is進行bool比較
字符串不要以空格收尾