一定要注重程式碼規範,按照平時的程式碼管理,可以將Python程式碼規範檢測分為兩種:
- 靜態本地檢測:可以藉助靜態檢查工具,比如:Flake8,Pylint等,調研了一下,用Flake8的相對較多,功能滿足,本文將使用Flake8
- git:可藉助git hooks,本文推薦使用pre-commit。
靜態本地檢測
Flake8包裝了Pyflakes、Pycodestyle和McCabe,也可以自定義外掛。功能包括:
- 檢查程式碼是否符合PEP8
- 檢查是否包含語法錯誤和未使用的變數和匯入
- 檢查程式碼的複雜度
安裝
pip install flake8
配置
推薦在pycharm中配置flake8:
引數說明:
- Program中填寫Flake可執行檔案的具體路徑
- arguments中可新增自定義引數,比如設定每行的最大字元數,過濾某些檔案(夾)等。
安裝完了之後單擊就可以檢測了:
執行檢測之後,如果出現 exit code 0
就說明程式碼規範,否則可按照提示進行整改。
pre-commit
介紹:
使用git的話,可以使用pre-commit鉤子,在呼叫git commit
命令時會自動執行指令碼進行檢測,若程式碼出錯,則不會commit成功。
作用:
- 在
git commit
命令之前對程式碼進行規範性檢測 - 按照配置,對一些不符合規範的程式碼自動更新為規範的(比如:填充空格、更新import等)
- 提示更新之後仍不符合規範的程式碼
安裝
pip install pre-commit
Linux中安裝完成即可執行pre-commit命令,Windows中需將.exe的路徑新增至環境變數,方可執行pre-commit命令。
配置
在專案根目錄下新增.pre-commit-config.yaml檔案。
可參考官網樣例,:
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v2.3.0
hooks:
- id: check-yaml
- id: end-of-file-fixer
- id: trailing-whitespace
- repo: https://github.com/psf/black
rev: 19.3b0
hooks:
- id: black
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v2.3.0
hooks:
- id: flake8
args:
- --max-line-length=120
具體的配置可結合官網或github中的說明文件進行相關配置更新。
安裝
執行pre-commit install
命令,會在.git/hook路徑下生成pre-commit檔案,這樣就保證了pre-commit安裝成功,可以正常使用了。
然後執行:
更新配置檔案只需要執行pre-commit install
即可。
使用
配置完成之後,在git commit
之前都會執行剛才的配置,可根據執行的結果來更新或者提交程式碼。
以上。