2010-12-09 42 views
26

pyLint看起來像是一個很好的工具來運行python代碼的分析。但是,我們的主要目標是捕捉任何潛在的錯誤,而不是編碼慣例。啓用所有pyLint檢查似乎會產生很多噪音。關於您使用的一組pyLint功能的任何建議,並且有效?PyLint最佳實踐?

回答

23

您可以阻止任何警告/錯誤,你不喜歡,通過:

pylint的--disable = [錯誤,錯誤]

我阻止這些(從描述http://www.logilab.org/card/pylintfeatures

W0511:當檢測到FIXME或XXX的警告信息時使用

W0142:使用*或* magic *當使用* args或** kwargs調用函數或方法調用參數時使用,這不會提高可讀性並應小心使用。

W0141:內置函數%r使用當使用黑名單內置函數時(請參閱不良函數選項)。常用的黑名單函數就像map或filter,Python現在提供了一些更清晰的選項,如列表理解。

R0912:分支太多(%s /%s)當函數或方法分支太多時使用,難以遵循。

R0913:參數太多(%s /%s)當函數或方法佔用太多參數時使用。

R0914:太多局部變量(%s /%s)當函數或方法的局部變量過多時使用。

R0903:公共方法太少(%s /%s)當類的公共方法太少時使用,所以確保它真的值得。

W0212:訪問客戶類的受保護成員%s當受保護成員(即名稱以下劃線開頭的類成員)訪問類或其定義類的後代時使用。

W0312:發現縮進時使用%ss而不是%ss當模塊中存在某些混合的製表符和空格時使用。

C0111:缺少文檔字符串當模塊,函數,類或方法沒有文檔字符串時使用。一些特殊的方法,如init不需要一個文檔字符串。

C0103:無效的名稱「%s」(應與%s匹配)當名稱與其類型(常量,變量,類...)關聯的正則表達式不匹配時使用。

+2

禁用特定類型的消息的描述是正確的,但我相信一些抑制性錯誤的具體選擇是有爭議的。像「太多局部變量/分支」是一個巨大的紅旗。 – 2014-01-28 15:33:34

7

-E只會標記pylint認爲是一個錯誤(即沒有警告,沒有約定...)

8

要堅持禁用警告,並約定:

  1. 運行pylint --generate-rcfile > ~/.pylintrc
  2. 編輯~/.pylintrc
  3. 取消註釋disable=創建~/.pylintrc文件並用grep喜歡把上面一行disable=W,C
2

pylint my_file.py | grep -v "^C"