pyLint看起來像是一個很好的工具來運行python代碼的分析。但是,我們的主要目標是捕捉任何潛在的錯誤,而不是編碼慣例。啓用所有pyLint檢查似乎會產生很多噪音。關於您使用的一組pyLint功能的任何建議,並且有效?PyLint最佳實踐?
26
A
回答
10
Pyflakes應該爲您的目的服務。
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匹配)當名稱與其類型(常量,變量,類...)關聯的正則表達式不匹配時使用。
7
-E只會標記pylint認爲是一個錯誤(即沒有警告,沒有約定...)
8
要堅持禁用警告,並約定:
- 運行
pylint --generate-rcfile > ~/.pylintrc
- 編輯
~/.pylintrc
- 取消註釋
disable=
創建~/.pylintrc
文件並用grep喜歡把上面一行disable=W,C
2
:
pylint my_file.py | grep -v "^C"
相關問題
禁用特定類型的消息的描述是正確的,但我相信一些抑制性錯誤的具體選擇是有爭議的。像「太多局部變量/分支」是一個巨大的紅旗。 – 2014-01-28 15:33:34