因爲項目團隊中新加入了幾名攻城獅, 你們以前的背景各不相同,寫出的代碼也是「風格迥異」。正所謂:「無規則不成方圓」,所以須要對編程進行必要的規範。html
總體的思路是:依照PEP8 Python 編碼規範,並結合本身團隊的實際狀況來定義一些規則。node
1 縮進。4個空格的縮進(編輯器均可以完成此功能),若是使用nodepad++請不要使用默認的Tab,更不能混合使用Tab和空格。python
2 每行最大長度爲80,換行可使用反斜槓 "\",最好使用圓括號。換行點要在操做符的後邊敲回車。git
3 類和top-level函數定義之間空兩行;類中的方法定義之間空一行;函數內邏輯無關段落之間空一行;其餘地方儘可能不要再空行。 github
4 模塊內容的順序:模塊說明和docstring—import—globals&constants—其餘定義。編程
1 import部分,又按標準、三方和本身編寫順序依次排放,之間空一行。 編輯器
2 不要一次import中多個庫,好比import os, sys不推薦。ide
1 各類右括號前不要加空格。函數
2 逗號、冒號、分號前不要加空格。ui
3 函數的左括號前不要加空格。如Func(1)。
4 序列的左括號前不要加空格。如list[2]。
5 操做符左右各加一個空格,不要爲了對齊增長空格。
6 函數默認參數使用的賦值符左右省略空格。
7 不要將多句語句寫在同一行,儘管語法容許使用";"。
8 if/for/while語句中,即便執行語句只有一句,也必須另起一行()。
註釋必須使用英文,最好是完整的句子,首字母大寫,句後要有結束符,結束符後跟兩個空格,開始下一句。若是是短語,能夠省略結束符。
1 塊註釋,在一段代碼前增長的註釋。在‘#’後加一空格。段落之間以只有‘#’的行間隔。
2 行註釋,在一句代碼後加註釋。好比:x = x + 1 # Increment x
3 避免無謂的註釋。
1 模塊命名儘可能短小,使用所有小寫的方式,可使用下劃線。
2 包命名儘可能短小,使用所有小寫的方式,不可使用下劃線。
3 類的命名使用CapWords的方式,模塊內部使用的類採用_CapWords的方式。
4 異常命名使用CapWords+Error後綴的方式。
5 全局變量儘可能只在模塊內有效,相似C語言中的static。統必定義在一個模塊中。
6 函數命名使用所有小寫的方式,可使用下劃線。
7 常量命名使用所有大寫的方式,可使用下劃線。
8 類的屬性(方法和變量)命名使用所有小寫的方式,可使用下劃線。
9 類的屬性有3種做用域public、non-public和subclass API,能夠理解成C++中的public、private、protected。non-public屬性前,前綴一條下劃線。
https://github.com/google/styleguide/blob/gh-pages/pyguide.md
http://www.runoob.com/w3cnote/google-python-styleguide.html
https://www.cnblogs.com/haishiniu123/p/7125677.html