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