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