點(diǎn)評:企業(yè)的Python編碼規(guī)范基本上是參照PEP-8或谷歌開源項(xiàng)目風(fēng)格指南來制定的,后者還提到了可以使用Lint工具來檢查代碼的規(guī)范程度,面試的時(shí)候遇到這類問題,可以先說下這兩個(gè)參照標(biāo)準(zhǔn),然后挑重點(diǎn)說一下Python編碼的注意事項(xiàng)。
1. 空格的使用 - 使用空格來表示縮進(jìn)而不要用制表符(Tab)。
- 和語法相關(guān)的每一層縮進(jìn)都用4個(gè)空格來表示。
- 每行的字符數(shù)不要超過79個(gè)字符,如果表達(dá)式因太長而占據(jù)了多行,除了首行之外的其余各行都應(yīng)該在正常的縮進(jìn)寬度上再加上4個(gè)空格。
- 函數(shù)和類的定義,代碼前后都要用兩個(gè)空行進(jìn)行分隔。
- 在同一個(gè)類中,各個(gè)方法之間應(yīng)該用一個(gè)空行進(jìn)行分隔。
- 二元運(yùn)算符的左右兩側(cè)應(yīng)該保留一個(gè)空格,而且只要一個(gè)空格就好。
2. 標(biāo)識符命名
- 變量、函數(shù)和屬性應(yīng)該使用小寫字母來拼寫,如果有多個(gè)單詞就使用下劃線進(jìn)行連接。
- 類中受保護(hù)的實(shí)例屬性,應(yīng)該以一個(gè)下劃線開頭。
- 類中私有的實(shí)例屬性,應(yīng)該以兩個(gè)下劃線開頭。
- 類和異常的命名,應(yīng)該每個(gè)單詞首字母大寫。
- 模塊級別的常量,應(yīng)該采用全大寫字母,如果有多個(gè)單詞就用下劃線進(jìn)行連接。
- 類的實(shí)例方法,應(yīng)該把第一個(gè)參數(shù)命名為self以表示對象自身。
- 類的類方法,應(yīng)該把第一個(gè)參數(shù)命名為cls以表示該類自身。
3. 表達(dá)式和語句
- 采用內(nèi)聯(lián)形式的否定詞,而不要把否定詞放在整個(gè)表達(dá)式的前面。例如:if a is not b就比if not a is b更容易讓人理解。
- 不要用檢查長度的方式來判斷字符串、列表等是否為None或者沒有元素,應(yīng)該用if not x這樣的寫法來檢查它。
- 就算if分支、for循環(huán)、except異常捕獲等中只有一行代碼,也不要將代碼和if、for、except等寫在一起,分開寫才會讓代碼更清晰。
- import語句總是放在文件開頭的地方。
- 引入模塊的時(shí)候,from math import sqrt比import math更好。
- 如果有多個(gè)import語句,應(yīng)該將其分為三部分,從上到下分別是Python標(biāo)準(zhǔn)模塊、第三方模塊和自定義模塊,每個(gè)部分內(nèi)部應(yīng)該按照模塊名稱的字母表順序來排列。