目錄
編碼規範
#1、分號
2、命名
3、行長度
4、縮排
5、空白行
6、空格
7、類別
8、區塊註解和行註解
9、字串
10、導包
1.命名
2.空白
3.語句
首頁 後端開發 Python教學 Python中的編碼規格有哪些

Python中的編碼規格有哪些

May 09, 2023 pm 03:22 PM
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:`行長度` 部分的範例), 或使用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中的編碼規格有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

PHP和Python:解釋了不同的範例 PHP和Python:解釋了不同的範例 Apr 18, 2025 am 12:26 AM

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。

在PHP和Python之間進行選擇:指南 在PHP和Python之間進行選擇:指南 Apr 18, 2025 am 12:24 AM

PHP適合網頁開發和快速原型開發,Python適用於數據科學和機器學習。 1.PHP用於動態網頁開發,語法簡單,適合快速開發。 2.Python語法簡潔,適用於多領域,庫生態系統強大。

Python vs. JavaScript:學習曲線和易用性 Python vs. JavaScript:學習曲線和易用性 Apr 16, 2025 am 12:12 AM

Python更適合初學者,學習曲線平緩,語法簡潔;JavaScript適合前端開發,學習曲線較陡,語法靈活。 1.Python語法直觀,適用於數據科學和後端開發。 2.JavaScript靈活,廣泛用於前端和服務器端編程。

PHP和Python:深入了解他們的歷史 PHP和Python:深入了解他們的歷史 Apr 18, 2025 am 12:25 AM

PHP起源於1994年,由RasmusLerdorf開發,最初用於跟踪網站訪問者,逐漸演變為服務器端腳本語言,廣泛應用於網頁開發。 Python由GuidovanRossum於1980年代末開發,1991年首次發布,強調代碼可讀性和簡潔性,適用於科學計算、數據分析等領域。

vs code 可以在 Windows 8 中運行嗎 vs code 可以在 Windows 8 中運行嗎 Apr 15, 2025 pm 07:24 PM

VS Code可以在Windows 8上運行,但體驗可能不佳。首先確保系統已更新到最新補丁,然後下載與系統架構匹配的VS Code安裝包,按照提示安裝。安裝後,注意某些擴展程序可能與Windows 8不兼容,需要尋找替代擴展或在虛擬機中使用更新的Windows系統。安裝必要的擴展,檢查是否正常工作。儘管VS Code在Windows 8上可行,但建議升級到更新的Windows系統以獲得更好的開發體驗和安全保障。

visual studio code 可以用於 python 嗎 visual studio code 可以用於 python 嗎 Apr 15, 2025 pm 08:18 PM

VS Code 可用於編寫 Python,並提供許多功能,使其成為開發 Python 應用程序的理想工具。它允許用戶:安裝 Python 擴展,以獲得代碼補全、語法高亮和調試等功能。使用調試器逐步跟踪代碼,查找和修復錯誤。集成 Git,進行版本控制。使用代碼格式化工具,保持代碼一致性。使用 Linting 工具,提前發現潛在問題。

notepad 怎麼運行python notepad 怎麼運行python Apr 16, 2025 pm 07:33 PM

在 Notepad 中運行 Python 代碼需要安裝 Python 可執行文件和 NppExec 插件。安裝 Python 並為其添加 PATH 後,在 NppExec 插件中配置命令為“python”、參數為“{CURRENT_DIRECTORY}{FILE_NAME}”,即可在 Notepad 中通過快捷鍵“F6”運行 Python 代碼。

vscode 擴展是否是惡意的 vscode 擴展是否是惡意的 Apr 15, 2025 pm 07:57 PM

VS Code 擴展存在惡意風險,例如隱藏惡意代碼、利用漏洞、偽裝成合法擴展。識別惡意擴展的方法包括:檢查發布者、閱讀評論、檢查代碼、謹慎安裝。安全措施還包括:安全意識、良好習慣、定期更新和殺毒軟件。

See all articles