一定要注重代碼規范,按照平時的代碼管理,可以將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
之前都會執行剛才的配置,可根據執行的結果來更新或者提交代碼。
以上。