App下載

PEP8:令你的python代碼更易讀

星河幾重 2021-06-03 17:39:16 瀏覽數(shù) (2142)
反饋

許多小伙伴們?cè)谑褂镁哂写a分析的代碼編輯器寫(xiě) python 代碼的時(shí)候,有時(shí)候會(huì)遇到這種情況:明明代碼沒(méi)有錯(cuò)誤,也可以進(jìn)行代碼執(zhí)行,為什么代碼下面還畫(huà)著波浪線?其實(shí)是因?yàn)槟愕拇a不符合 PEP8 規(guī)范。雖然不符合該規(guī)范代碼也可以正常運(yùn)行(大多數(shù)情況可以正常運(yùn)行),但亂七八糟的代碼會(huì)是閱讀代碼的人難以理解代碼,所以為了小伙伴的同事關(guān)系融洽(不宜讀的代碼會(huì)增加別人的負(fù)擔(dān)),學(xué)習(xí) PEP8 規(guī)范很有必要。

首先介紹一下 PEP8,它是 Guido(python 之父)寫(xiě)的 python 樣式指南文章改編而來(lái)(加入 Barry 的部分樣式指南)的編碼約定。詳細(xì)的 PEP8 文檔可以在官網(wǎng)找到。

PEP8官網(wǎng)文檔

接下來(lái),小編挑出一些平常比較需要注意的規(guī)范進(jìn)行介紹:

縮進(jìn)

每一級(jí)縮進(jìn)使用4個(gè)空格(可以在代碼編輯 tab 制表符一次縮進(jìn)四個(gè)空格)。

續(xù)行

續(xù)行應(yīng)該與其包裹元素對(duì)齊。

可以使用圓括號(hào)、方括號(hào)和花括號(hào)內(nèi)的隱式行連接來(lái)垂直對(duì)齊,也可以使用掛行縮進(jìn)對(duì)齊。

注:在使用掛行縮進(jìn)時(shí),應(yīng)該考慮到第一行不應(yīng)該有參數(shù),以及使用縮進(jìn)以區(qū)分自己是續(xù)行。

行的最大長(zhǎng)度

所有行限制的最大字符數(shù)為79。超出最大字符數(shù)可以采用續(xù)行。

沒(méi)有結(jié)構(gòu)化限制的大塊文本(比如文檔字符或者注釋),每行的最大字符數(shù)限制在72。

空行

頂層函數(shù)和類的定義,前后使用兩個(gè)空行隔開(kāi)。

類里的方法定義只需要用一個(gè)空行隔開(kāi)。

導(dǎo)入

導(dǎo)入通常要分開(kāi)進(jìn)行而且要位于文件的頂部。

注釋

塊注釋使用一個(gè) # 和一個(gè)空格加上注釋內(nèi)容構(gòu)成。塊注釋最好縮進(jìn)到與代碼相同的級(jí)別(盡管不縮進(jìn)也不會(huì)被代碼編輯器發(fā)現(xiàn))。

行內(nèi)注釋則是在塊注釋的要求上在 # 之前空兩個(gè)空格。

注;代碼編輯器不會(huì)關(guān)注你的注釋的質(zhì)量,但這并不代表你可以隨意注釋,垃圾的注釋不如沒(méi)有注釋。

命名約定

在命名的時(shí)候應(yīng)該避免一些不好區(qū)分的字母作為單字符變量名(比如小寫(xiě)的 L 和大寫(xiě)的 i,當(dāng)然,這點(diǎn)也不會(huì)被代碼編輯器發(fā)現(xiàn))。

類名一般使用首字母大寫(xiě),函數(shù)名應(yīng)該小寫(xiě),想提高可讀性可以用下劃線分隔

不要加分號(hào)

盡管在 python2.x 版本中可以使用分號(hào)來(lái)作為語(yǔ)句的結(jié)束標(biāo)識(shí),但實(shí)際上 python 還是通過(guò)換行來(lái)識(shí)別語(yǔ)句結(jié)束。所以分號(hào)不需要存在,也不要在一行里寫(xiě)入多個(gè) python 語(yǔ)句(因?yàn)槭褂梅痔?hào)可以在一行內(nèi)寫(xiě)入多個(gè)語(yǔ)句,但這是違背 PEP8 規(guī)范的)。

空格

按照標(biāo)準(zhǔn)的排版規(guī)范來(lái)使用標(biāo)點(diǎn)兩邊的空格,括號(hào)內(nèi)不要有空格。不要在逗號(hào),分號(hào),冒號(hào)前加空格,但應(yīng)該在他們后面加空格(行尾除外)。

參數(shù)列表, 索引或切片的左括號(hào)前不應(yīng)加空格。 在二元操作符兩邊都加上一個(gè)空格, 比如賦值(=), 比較(==, <, >, !=, <>, <=, >=, in, not in, is, is not)和布爾(and, or, not)。算術(shù)操作符兩邊的空格應(yīng)該保持一致。當(dāng)(=)用于指示關(guān)鍵字參數(shù)或默認(rèn)參數(shù)值時(shí), 不要在其兩側(cè)使用空格。 

總結(jié)

PEP8 代碼規(guī)范雖然很多很復(fù)雜,但有些規(guī)則你多使用自然就能成為習(xí)慣。當(dāng)編寫(xiě)的代碼符合規(guī)范時(shí),代碼的可閱讀性就大大提高了。另外,使用一款好的代碼編輯器可以幫助你發(fā)現(xiàn)不符合 PEP8 規(guī)范的地方,并給出相應(yīng)的提示(比如 pycharm)。

更多優(yōu)質(zhì) python 課程,盡在Python課程列表。


0 人點(diǎn)贊