一,包名、模組名、區域性變數名、函式名
全小寫+下劃線式駝峰
example:this_is_var
二,全域性變數
全大寫+下劃線式駝峰
example:GLOBAL_VAR
三,類名
首字母大寫式駝峰
example:ClassName()
四,關於下劃線
以單下劃線開頭,是弱內部使用標識,from M import * 時,將不會匯入該物件(python 一切皆物件)。
以雙下劃線開頭的變數名,主要用於類內部標識類私有,不能直接訪問。模組中使用見上一條。
雙下劃線開頭且雙下劃線截尾的命名方法儘量不要用,這是標識
example for 1:
module_1 模組中定義變數 var_1, _var_2, __var_3
#module_1
var_1
_var_2
__var_3
module_2 模組中程式碼如下:
#module_2_error ''' 以下劃線開頭的變數不會別匯入 ''' from module_1 import * print var_1 print _var_2 #將報錯 print __var_3 #將報錯
執行到第6,7行將會報錯,因為凡是以下劃線開頭的物件都不會被匯入。
既然是弱內部使用標識,就還是有使用辦法的,只需單獨匯入即可:
#module_2_solution from module_1 import * # 匯入所有的不是下劃線開頭的物件 from module_1 import _var_2, __var_3 # 顯式匯入下劃線開頭的物件 print var_1 print _var_2 # 不會報錯 print __var_3 # 不會報錯
example for 2:
#module_error ''' 雙下劃線開頭的變數不能被直接訪問 ''' class MyClass(): def __init__(self): self.var_1 = 1 self._var_2 = 2 self.__var_3 = 3 if __name__=="__main__": obj = MyClass() print obj.var_1 print obj._var_2 print obj.__var_3 # 這裡將會出錯
需要定義函式來獲取雙下劃線開頭的變數
#module_solution ''' 需要定義函式來獲取雙下劃線開頭的變數 ''' class MyClass(): def __init__(self): self.var_1 = 1 self._var_2 = 2 self.__var_3 = 3 def get_var_3(self): return self.__var_3 if __name__=="__main__": obj = MyClass() print obj.var_1 print obj._var_2 print obj.get_var_3() # 不會再報錯
四,其他要注意的
不要像c等語言裡面一樣去用開頭字母標識變數型別(如 iValue),因為python在解釋的時候才確定型別。
因為異常也是一個類,所以遵守類的命名規則。此外,如果異常實際上指代一個錯誤的話,應該使用“Error”做字尾。
命名應當儘量使用全拼寫的單詞,縮寫的情況有如下兩種:常用的縮寫,如XML、ID等,在命名時也應只大寫首字母,如XmlParser。命名中含有長單詞,對某個單詞進行縮寫。這時應使用約定成俗的縮寫方式。例如:function 縮寫為 fn, text 縮寫為 txt, object 縮寫為 obj, count 縮寫為 cnt, number 縮寫為 num 等。
類例項方法第一個引數使用self, 類方法第一個引數使用cls