一.代碼的編排
1縮進(jìn)4個空格的縮進(jìn)(編輯器都可以完成的功能),不使用TaP憾朴,更不能混合使用Tap和空格
2每行最大的長度為79,換行可以使用反斜杠,最好使用圓括號,換行點要在原操作符的后面敲回車锈至。
3 類和top-level函數(shù)定義之間空兩行;類中的方法定義之間空一行异吻;函數(shù)內(nèi)邏輯無關(guān)段落之間空一行裹赴;其他地方盡量不要再空行。
二.編排文檔
1 模塊內(nèi)容的順序:模塊說明和docstring—import—globals&constants—其他定義诀浪。其中import部分棋返,又按標(biāo)準(zhǔn)、三方和自己編寫順序依次排放雷猪,之間空一行睛竣。
2 不要在一句import中多個庫,比如import os, sys不推薦求摇。
3.如果采用from XX import XX引用庫射沟,可以省略‘module.’,都是可能出現(xiàn)命名沖突与境,這時就要采用import XX验夯。
三.空格的使用
總體原則,避免不必要的空格摔刁。
1 各種右括號前不要加空格挥转。
2 逗號、冒號共屈、分號前不要加空格绑谣。
3 函數(shù)的左括號前不要加空格。如Func(1)拗引。
4 序列的左括號前不要加空格借宵。如list[2]。
5 操作符左右各加一個空格矾削,不要為了對齊增加空格壤玫。
6 函數(shù)默認(rèn)參數(shù)使用的賦值符左右省略空格豁护。
7 不要將多句語句寫在同一行,盡管使用‘欲间;’允許择镇。
8 if/for/while語句中,即使執(zhí)行語句只有一句括改,也必須另起一行腻豌。
四.注釋
1總體的原則錯誤的注釋不如沒有注釋。所以當(dāng)一段代碼發(fā)生變化時候第一件事情就是要修改注釋嘱能!
2注釋必須使用英文吝梅,最好是完整的句子,首字母大寫惹骂,句后要有結(jié)束符苏携,結(jié)束符后面跟兩個空格。
五.命名規(guī)則
1包和模塊名應(yīng)該簡短对粪,全部用小寫字母,多字母之間可以用單下滑線連接
2類名遵循駝峰命名
3全局變量名應(yīng)盡量只在模塊內(nèi)部使用, 對可能使用語句 from moduleName import variableName 而被導(dǎo)入的模塊右冻,應(yīng)采用 __all__ 機(jī)制來防止全局變量被別的模塊導(dǎo)入, 或者在全局變量名開頭加一個前置下劃線.
4函數(shù)名應(yīng)該為全部小寫的凹駝峰規(guī)則
5常量全部使用大寫字母的凹駝峰規(guī)則來表示, 通常在模塊頂格定義
6非公開方法和實例變量開頭使用前置下劃線
有時候可能會為了避免與子類命名沖突,采用兩個前置下劃線
需要注意的是: 若 class Foo 的屬性名為 __a著拭, 該屬性是不能以 Foo.__a 的方式訪問的(執(zhí)著的用戶還是可以通過Foo._Foo__a 來訪問), 所以通常雙前置下劃線僅被用來避免與基類的屬性發(fā)生命名沖突纱扭。