點評:靜態代碼分析工具可以從代碼中提煉出各種靜態屬性,這使得開發者可以對代碼的復雜性、可維護性和可讀性有更好的了解,這里所說的靜態屬性包括:
1. 代碼是否符合編碼規范,例如:PEP-8。
2. 代碼中潛在的問題,包括:語法錯誤、縮進問題、導入缺失、變量覆蓋等。
3. 代碼中的壞味道。
4. 代碼的復雜度。
5. 代碼的邏輯問題。 工作中靜態代碼分析主要用到的是Pylint和Flake8。
Pylint可以檢查出代碼錯誤、壞味道、不規范的代碼等問題,較新的版本中還提供了代碼復雜度統計數據,可以生成檢查報告。
Flake8封裝了Pyflakes(檢查代碼邏輯錯誤)、McCabe(檢查代碼復雜性)和Pycodestyle(檢查代碼是否符合PEP-8規范)工具,它可以執行這三個工具提供的檢查。