1. 一致性的建議
打破一條既定規則的兩個好理由
當應用這個規則將導致程式碼可讀性下降,即使對於某人來說他已經習慣於按照這條規則來閱讀程式碼了
為了和周圍的程式碼保持一致而打破規則(也許是歷史原因)
2. 程式碼的佈局
縮排
4個空格
程式碼行
行最大長度 : 79字元
推薦長度 : 72字元
分割方式 : "" , "()" , "{}"
空行
兩行空行分割頂層函式和類的定義
一行空行分割方法或函式
額外空行分割相關函式群
類定義與第一個方法定義需要一行空行
編碼
萬年 "UTF-8"
匯入
先import標準模組,再from ... import第三方模組(絕對路徑) ,最後from ... import自建模組
每組匯入空一行,一行匯入一個包[模組,類等]
空格
緊貼各類括號
緊貼逗號,分號,冒號前
緊貼函式呼叫引數列表前開放式括號
緊貼再索引或切片括號
二元運算子或運算子或邏輯等兩邊各留一個空格
預設引數或關鍵引數"="不留空格
3. 註釋
註釋塊
與相應程式碼有著相同縮排
行內註釋
與程式碼被註釋程式碼同行,以"#"+" "開頭
文件註釋
結尾處 """ 單獨成行
版本註記
模組文件字串之後,所有程式碼之前,上下空行分割
4. 命名
約定
模組名 : 不含下劃線 ; 小寫 ; 剪短
類名,異常名 : 首字母大寫單詞串
方法,函式 : 第一個字母小寫的首字母大寫單詞串
屬性,例項,變數 : 小寫字母串
繼承
私有 : 雙下劃線開頭
非公有 : 單下劃線開頭
命名衝突
不降低可讀性,能改就改,不能就在末尾加單個下劃線或者數字
5. 設計建議
使用"is"或"is not"進行對"None"的單值比較
使用字串方法代替字串模組
使用startswith()和endswith()檢查前字尾而不是使用切片
使用isinstance()判斷物件是否是字串而不是使用type()
判斷空序列或字典不要使用len()
書寫字串文字不要依賴有意義的後置空格
不要用"=="比較布林值
文章轉自:http://www.cnblogs.com/erliang/p/4065605.html