Python - 命名規範

來源:互聯網
上載者:User
一,包名、模組名、局部變數名、函數名

全小寫+底線式駝峰

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

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.