參考 Python的代碼風格 - 雲+社區 - 騰訊雲
目錄
一、設置代碼格式
1、代碼編寫風格的重要性
2、設置格式指南
3、縮進
4、行長
5、空行
二、函數的編寫風格
三、類的編碼風格
隨著你編寫的程序越來越長,有必要了解一些代碼格式設置約定。請花時間讓你的代碼盡可能易於閱讀;讓代碼易於閱讀有助於你掌握程序是做什麼的,也可以幫助他人理解你編寫的代碼。為確保所有人編寫的代碼結構都大致一致。Python程序員都遵循一些格式設置約定。學會編寫整潔的Python後,就能明白他人編寫Python代碼的整體結構------只要他們和你遵循相同的指南。
若要提出Python語言修改建議,需要編寫Python改進報案(Python Enchancement Proposal,PEP)。PEP8是最古老的PEP之一,它向Python程序員提供了代碼格式設置指南。Python格式設置指南的編寫者深知,代碼被閱讀的次數比編寫的次數多。代碼編寫出來後,調試時你需要閱讀它;給程序添加新功能時,需要花很長的時間閱讀代碼;與其他程序員分享代碼,這些程序員也將閱讀它們。如果一定要在讓代碼易於編寫和易於閱讀之間做出選擇,Python程序員幾乎總是會選擇後者。
PEP 8建議每級縮進都使用四個空格,這既可提高可讀性,又留下了足夠的多級縮進空間。在字處理文檔中,大家常常使用制表符而不是空格來縮進。對於字處理文檔來說,這樣做的效果很好,但混合使用制表符和空格會讓Python解釋器感到迷惑。每款文本編輯器都提供了一種設置,可將輸入的制表符轉換為指定數量的空格。你在編寫代碼時應該使用制表符鍵,但一定要對編輯器進行設置,使其在文檔中插入空格而不是制表符。在程序中混合使用制表符和空格可能導致極難解決的問題。如果你混合使用了制表符和空格,可將文件中所有的制表符轉換為空格,大多數編輯器都提供了這樣的功能。
很多Python程序員都建議每行不超過80字符,最初制定這樣的指南時,在大多數計算機中,終端窗口每行只能容納79字符;當前,計算機屏幕每行可容納的字符數多得多,為何還要使用79字符的標准行長呢?這裡有別的原因。專業程序員通常會在同一個屏幕上打開多個文件,使用標准行長可以讓他們在屏幕上並排打開兩三個文件時能同時看到各個文件的完整行。PEP 8還建議注釋的行長都不超過72字符,因為有些工具為大型項目自動生成文檔時,會在每行注釋開頭添加格式化字符。PEP 8中有關行長的指南並非不可逾越的紅線,有些小組將最大行長設置為99字符。在學習期間,你不用過多地考慮代碼的行長,但別忘了,協作編寫程序時,大家幾乎都遵循PEP 8指南。在大多數編輯器中,都可設置一個視覺標志-------通常是一條豎線,讓你知道不能越過的界限在上面地方。
要將程序的不同部分分開,可使用空行。你應該使用空行來組織程序文件,但也不能濫用。如果你有5行創建列表的代碼,還有3行處理該列表的代碼,那麼用一個空行將這兩部分隔開是合適的。然而,你不應使用三四個空行將它們隔開。空行不會影響代碼的運行,但會影響代碼的可讀性。Python解釋器根據水平縮進情況來解讀代碼,但不關心垂直間距。
編寫函數時,需要牢記幾個細節,應給函數指定描述性名稱,且只在其中使用小寫字母和下劃線。描述性名稱可幫助你和別人明白代碼想要做什麼。給模塊命名時也應遵循上述約定。
每個函數都應包含簡要地闡述其功能的注釋,該注釋應緊跟在函數定義後面,並采用文檔字符串格式。文檔字符串良好的函數讓其他程序員只需閱讀該文檔字符串中的描述就能夠使用它:他們完全可以相信代碼如描述的那樣運行:只要知道函數的名稱、需要的實參以及返回值的類型,就能再自己的程序中使用它。
給形參指定默認值時,等號兩邊不要有空格:
def function_name(parameter_0, parameter_1='default value')
對於函數調用中的關鍵字實參,也應遵循這種約定:
function_name(value_0, parameter_1='value')
PEP 8(https://www.python.org/dev/peps/pep-0008)建議代碼行的長度不要超過79字符,這樣只要編輯器窗口適中,就能看到整行代碼。如果形參很多,導致函數定義的長度超過了79字符,可在函數定義中輸入左括號後按回車鍵,並在下一行按兩次Tab鍵,從而將形參列表和只縮進一層的函數體區分出來。
大多數編輯器都會自動對齊後續參數列表行,使其縮進程度與你給第一個參數列表行指定的縮進程度相同:
def function_name(
parameter_0, parameter_1, parameter_2,
parameter_3, parameter_4, parameter_5):
function body...
如果程序或模塊包含多個函數,可使用兩個空行將相鄰的函數分開,這樣將更容易知道前一個函數在什麼地方結束,下一個函數從什麼地方開始。
所有的import語句都應放在文件開頭,唯一例外的情形時,在文件開頭使用了注釋來描述整個程序。
你必須熟悉有些與類相關的編碼風格問題,在你編寫的程序較復雜時尤其如此。類名應采用駝峰命名法則;即將類名中的每個單詞的首字母都大寫,而不使用下劃線。實例名和模塊名都采用小寫格式,並在單詞之間加上下劃線。對於每個類,都應緊跟在類定義後面包含一個文檔字符串。這種文檔字符串簡要地描述類的功能,並遵循編寫函數的文檔字符串時采用的格式約定。每個模塊也都應包含一個文檔字符串,對其中的類可用於做什麼進行描述。
可使用空行來組織代碼,但不要濫用。在類中,可使用一個空行來分隔方法;而在模塊中,可使用兩個空行來分隔類。需要同時導入標准庫的模塊和你編寫的模塊時,先編寫導入表准率模塊的import語句,再添加一個空行,然後編寫導入你自己編寫的模塊的import語句。在語句包含多條import語句的程序中,這種做法讓人更容易明白程序使用的各個模塊都來何方。