App下載

PEP8:令你的python代碼更易讀

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

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

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

PEP8官網(wǎng)文檔

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

縮進(jìn)

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

續(xù)行

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

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

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

行的最大長度

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

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

空行

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

類里的方法定義只需要用一個空行隔開。

導(dǎo)入

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

注釋

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

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

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

命名約定

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

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

不要加分號

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

空格

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

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

總結(jié)

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

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


0 人點(diǎn)贊