Python代碼規范檢測


一定要注重代碼規范,按照平時的代碼管理,可以將Python代碼規范檢測分為兩種:

  1. 靜態本地檢測:可以借助靜態檢查工具,比如:Flake8,Pylint等,調研了一下,用Flake8的相對較多,功能滿足,本文將使用Flake8
  2. git:可借助git hooks,本文推薦使用pre-commit。

靜態本地檢測

Flake8包裝了Pyflakes、Pycodestyle和McCabe,也可以自定義插件。功能包括:

  1. 檢查代碼是否符合PEP8
  2. 檢查是否包含語法錯誤和未使用的變量和導入
  3. 檢查代碼的復雜度

安裝

pip install flake8

配置

推薦在pycharm中配置flake8:

參數說明:

  1. Program中填寫Flake可執行文件的具體路徑
  2. arguments中可添加自定義參數,比如設置每行的最大字符數,過濾某些文件(夾)等。

安裝完了之后單擊就可以檢測了:

執行檢測之后,如果出現 exit code 0 就說明代碼規范,否則可按照提示進行整改。

pre-commit

官網https://pre-commit.com/

介紹

使用git的話,可以使用pre-commit鈎子,在調用git commit 命令時會自動執行腳本進行檢測,若代碼出錯,則不會commit成功。

作用

  1. git commit命令之前對代碼進行規范性檢測
  2. 按照配置,對一些不符合規范的代碼自動更新為規范的(比如:填充空格、更新import等)
  3. 提示更新之后仍不符合規范的代碼

安裝

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之前都會執行剛才的配置,可根據執行的結果來更新或者提交代碼。

以上。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM