python靜態代碼檢查
我們知道python是一門腳本語言,不像C#/Java等編譯型語言可以在編譯階段就報出代碼錯誤,腳本語言往往需要在運行期執行到這段代碼時才會拋出代碼錯誤。
那么在實際商業項目中使用python開發,我們是怎樣做靜態代碼檢查的呢?
首先在我們項目組推薦使用vscode做為python開發工具,本文我介紹下我們做的python代碼靜態審查來減少運行期的py腳本錯誤。
- 安裝vscode插件:save and run,下載地址:Save and Run - Visual Studio Marketplace
- 通過pip install pyflakes 這個模塊,安裝后就有pyflakes.exe
- 在vscode中配置文件(settings.json)中增加這幾行配置
"saveAndRun": {
"commands": [
{
"match":"\\.py$",
"isAsync":true,
"cmd":"python C:\\Python27\\Scripts\\pyflakes.exe ${file}"
}
]
},
- 在vscode中編寫完py腳本,在保存時就會提示你當前文件是否有腳本錯誤了。
驗證一下
語法報錯
代碼縮進在python中是語法,如果在純文本中編輯代碼或復制粘貼的代碼,很大概率會出現縮進不對從而在運行時報錯,通過上面的設置后在從保存py文件時就會報錯出來。
PS E:\Code\python_study> python C:\Python27\Scripts\pyflakes.exe e:\Code\python_study\hello_netease.py
e:\Code\python_study\hello_netease.py:10:1: unexpected indent
print ("hello netease")
^
python用法報錯
比如這個py文件中有一處錯誤,在保存py時就會提示你腳本有錯誤,這是因為global變量不能在初始化時賦值。
e:\Code\python_study\true-false邏輯控制符.py:9:17: invalid syntax
global log_func = 1
^
