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