Python基礎 - 命名規範

pythontab發表於2013-06-13

一,包名、模組名、區域性變數名、函式名

全小寫+下劃線式駝峰

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


相關文章