91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python中的編碼規范有哪些

發布時間:2023-05-06 14:43:32 來源:億速云 閱讀:107 作者:zzz 欄目:開發技術

這篇“Python中的編碼規范有哪些”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Python中的編碼規范有哪些”文章吧。

編碼規范

Python 編碼規范重要性的原因用一句話來概括就是:統一的編碼規范可以提高開發效率。

ps.python的代碼編寫基本上都要遵循PEP8的風格

1、分號

不要在行尾加分號, 也不要用分號將兩條命令放在同一行。

2、命名

module_name, package_name, ClassName, method_name

應該避免的名稱

  1. 單字符名稱, 除了計數器和迭代器.

  2. 包/模塊名中的連字符(-)

  3. 雙下劃線開頭并結尾的名稱(Python保留, 例如__init__)

命名約定

  1. 所謂"內部(Internal)"表示僅模塊內可用, 或者, 在類內是保護或私有的.

  2. 用單下劃線(_)開頭表示模塊變量或函數是protected的(使用import * from時不會包含)

  3. 用雙下劃線(__)開頭的實例變量或方法表示類內私有.

  4. 將相關的類和頂級函數放在同一個模塊里. 不像Java, 沒必要限制一個類一個模塊.

  5. 對類名使用大寫字母開頭的單詞(如CapWords, 即Pascal風格), 但是模塊名應該用小寫加下劃線的方式(如lower_with_under.py). 盡管已經有很多現存的模塊使用類似于CapWords.py這樣的命名, 但現在已經不鼓勵這樣做, 因為如果模塊名碰巧和類名一致, 這會讓人困擾.

3、行長度

每行不超過80個字符

以下情況除外:

  1. 長的導入模塊語句注釋里的URL

  2. 不要使用反斜杠連接行。

Python會將 圓括號, 中括號和花括號中的行隱式的連接起來 , 你可以利用這個特點. 如果需要, 你可以在表達式外圍增加一對額外的圓括號。

推薦: 

foo_bar(self, width, height, color='black', design=None, x='foo',
             emphasis=None, highlight=0)
 
     if (width == 0 and height == 0 and
         color == 'red' and emphasis == 'strong'):

如果一個文本字符串在一行放不下, 可以使用圓括號來實現隱式行連接:

x = ('這是一個非常長非常長非常長非常長 '
     '非常長非常長非常長非常長非常長非常長的字符串')

4、縮進

用4個空格來縮進代碼

絕對不要用tab, 也不要tab和空格混用. 對于行連接的情況, 你應該要么垂直對齊換行的元素(見 :ref:`行長度 <line_length>` 部分的示例), 或者使用4空格的懸掛式縮進(這時第一行不應該有參數):

       # 與起始變量對齊
       foo = long_function_name(var_one, var_two,
                                var_three, var_four)
 
       # 字典中與起始值對齊
       foo = {
           long_dictionary_key: value1 +
                                value2,
           ...
       }

5、空行

頂級定義之間空兩行, 方法定義之間空一行

頂級定義之間空兩行, 比如函數或者類定義. 方法定義, 類定義與第一個方法之間, 都應該空一行. 函數或方法中, 某些地方要是你覺得合適, 就空一行.

6、空格

按照標準的排版規范來使用標點兩邊的空格

括號內不要有空格.

按照標準的排版規范來使用標點兩邊的空格

正確示范: spam(ham[1], {eggs: 2}, [])
錯誤示范: spam( ham[ 1 ], { eggs: 2 }, [ ] )

7、類

類應該在其定義下有一個用于描述該類的文檔字符串. 如果你的類有公共屬性(Attributes), 那么文檔中應該有一個屬性(Attributes)段. 并且應該遵守和函數參數相同的格式.

class SampleClass(object):
    """Summary of class here.
    Longer class information....
    Longer class information....
    Attributes:
        likes_spam: A boolean indicating if we like SPAM or not.
        eggs: An integer count of the eggs we have laid.
    """
 
    def __init__(self, likes_spam=False):
        """Inits SampleClass with blah."""
        self.likes_spam = likes_spam
        self.eggs = 0
 
    def public_method(self):
        """Performs operation blah."""

8、塊注釋和行注釋

最需要寫注釋的是代碼中那些技巧性的部分. 如果你在下次 代碼審查 的時候必須解釋一下, 那么你應該現在就給它寫注釋. 對于復雜的操作, 應該在其操作開始前寫上若干行注釋. 對于不是一目了然的代碼, 應在其行尾添加注釋.

# We use a weighted dictionary search to find out where i is in
# the array.  We extrapolate position based on the largest num
# in the array and the array size and then do binary search to
# get the exact number.
 
if i & (i-1) == 0:        # true iff i is a power of 2

為了提高可讀性, 注釋應該至少離開代碼2個空格.

另一方面, 絕不要描述代碼. 假設閱讀代碼的人比你更懂Python, 他只是不知道你的代碼要做什么.

# BAD COMMENT: Now go through the b array and make sure whenever i occurs
# the next element is i+1

9、字符串

正確示范: 
     x = a + b
     x = '%s, %s!' % (imperative, expletive)
     x = '{}, {}!'.format(imperative, expletive)
     x = 'name: %s; score: %d' % (name, n)
     x = 'name: {}; score: {}'.format(name, n)
錯誤示范: 
    x = '%s%s' % (a, b)  # use + in this case
    x = '{}{}'.format(a, b)  # use + in this case
    x = imperative + ', ' + expletive + '!'
    x = 'name: ' + name + '; score: ' + str(n)

10、導包

每個導入應該獨占一行

正確示范: 
import os 
import sys
錯誤示范:   import os, sys

導入總應該放在文件頂部, 位于模塊注釋和文檔字符串之后, 模塊全局變量和常量之前. 導入應該按照從最通用到最不通用的順序分組:

標準庫導入第三方庫導入應用程序指定導入

【總結】

1.命名

  1. 函數、變量及屬性都應該用小寫單詞拼寫,只見用_連接,不遵循駝峰命名法

  2. 類與異常應該首字母大寫,不要用_連接

  3. 受保護的實例屬性,應以單下劃線開頭

  4. 實例的私有屬性,應以雙下劃線開頭

  5. 模塊級別的變量單詞都要大寫,中間以單下劃線隔開

  6. 變量要盡可能有意義

2.空白

  1. 和語法相關的每一層縮進都用4個空格表示

  2. 賦值時等號兩邊都要有一個空格

  3. 每一行所占用的字符數應不超過79,實際操作中應當盡量不讓代碼編輯器的行滾動條顯示出來

  4. 在使用函數進行函數式編程時,函數之間要空兩行

  5. 在類中的函數,函數之間應該空一行

  6. 函數與類是同一個級別,則他們之間應該空兩行

  7. 對于超出每行規定的字符數的長表達式,應當敲回車縮進,通常除了首行其余各行都要在原來的基礎上再次縮進4個空格

3.語句

  1. 判斷變量是否為None、False或True時不要用==,要用is,例如,if a is None

  2. import語句應放在句首,導入時要盡量使用絕對導入不要使用相對導入,并且導入時最好指定相應的模塊的某一具體功能,例如,from datetime import datetime

  3. 模塊導入時應根據標準庫模塊、第三方模塊以及自用模塊進行分類

  4. 檢測容器不為空時,應使用if 容器名,例如,lists = [] if lists

  5. 采用內聯形式的否定詞,不要把否定詞放在整個表達式的前面,例如,應該if a is not None 而不是 if not a is None

4.注釋

  1. 對某些重要的代碼塊的功能說明,應使用單行注釋

  2. 對整個模塊功能的說明應使用多行注釋

  3. 對類或函數的功能及使用方法的詳細說明應使用文檔字符串

  4. python的注釋盡量使用英文

以上就是關于“Python中的編碼規范有哪些”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

大方县| 吉隆县| 大姚县| 诸暨市| 莱州市| 江山市| 五寨县| 丁青县| 崇义县| 高雄县| 通江县| 中阳县| 兴文县| 专栏| 义马市| 黄骅市| 岳阳县| 大城县| 阳东县| 当雄县| 秦安县| 舒城县| 天等县| 吴旗县| 昆明市| 莎车县| 伽师县| 石嘴山市| 汶川县| 广元市| 辰溪县| 招远市| 泰和县| 杭州市| 南京市| 固阳县| 金昌市| 皮山县| 荥阳市| 张掖市| 伊春市|