讓你的Python程式碼更乾淨只需簡單一步
說起來容易做起來難,我們都知道程式碼可讀性非常重要,但是寫的時候總是隨心所欲,不考慮型別提示、import 排序、PEP8 規範。今天分享一個小技巧,透過一個簡單的步驟就可以讓你的 Python 程式碼更乾淨。
這就是 pre-commit:
可以讓你的程式碼提交之前自動檢查是否符合你想要的規範。
使用之前,先 pip 安裝一下:
pip install pre-commit
然後在專案的根目錄下建立兩個檔案:.pre-commit-config.yaml 和 pyproject.toml。
.pre-commit-config.yaml 檔案內容如下:
exclude: _pb2\.py$ repos: - repo: rev: 22.3.0 hooks: - id: black args: [--skip-string-normalization] - repo: rev: v4.0.1 hooks: - id: check-docstring-first - id: check-json - id: check-merge-conflict - id: check-yaml - id: debug-statements - id: end-of-file-fixer - id: trailing-whitespace - id: requirements-txt-fixer - repo: rev: v1.9.0 hooks: - id: python-check-mock-methods - id: python-use-type-annotations - repo: rev: "v0.910" hooks: - id: mypy args: [ --ignore-missing-imports, --warn-no-return, --warn-redundant-casts, --disallow-incomplete-defs, ] additional_dependencies: [types-all] - repo: rev: 5.9.3 hooks: - id: isort args: [--profile, black, --filter-files]
這裡面配置了 black、mypy、check-docstring-first、isort 等工具,id 就是對應的工具,可以說這個配置檔案基本上就夠用了。
在 .pre-commit-config.yaml 檔案中,我們可以指定將使用哪些掛鉤,在 pyproject.toml 中,我們可以為這些單獨的鉤子指定引數。
pyproject.toml 檔案內容如下:
[tool.black] line-length = 88 target-version = ["py38"] [tool.isort] profile = "black" multi_line_output = 3
這裡配置了 black 和 isort 的相關配置。
然後執行在專案的根目錄執行 pre-commit install ,就可以安裝 pre-commit 外掛。
然後每次更新程式碼,提交程式碼時,這些鉤子都會觸發,會自動執行如下操作:
排序 import
PEP8 的格式程式碼
檢查您的 yaml 和 json 檔案的正確性
型別檢查(如果你使用了型別提示)
最後
你可以將這兩個檔案複製到自己的專案根目錄中,然後執行一次 pre-commit install,這樣每次提交程式碼的時候,都是乾淨的程式碼,是不是很方便?
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69901823/viewspace-2925297/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- C#6新特性,讓你的程式碼更乾淨C#
- JavaScript修飾器-讓程式碼更乾淨JavaScript
- JavaScript中使用bind()方法讓程式碼更乾淨JavaScript
- ES6+好用的小技巧,讓你的程式碼更乾淨,短巧,易讀
- 【JS】裝飾器讓你的程式碼更簡潔JS
- 幾個簡單的技巧讓你寫出的vue.js程式碼更優雅Vue.js
- 基礎問題不簡單 | 怎麼合理使用值物件,讓你的程式碼更清晰、更安全?物件
- php乾淨程式碼PHP
- 視窗管理Display Maid,讓自己的桌面更乾淨AI
- 幾個小技巧讓你的Python程式碼更PythonicPython
- 使用 Macro 讓你的程式碼更簡潔,更具有可讀性Mac
- Kotlin-for-Android : 讓你的Android程式碼更簡潔KotlinAndroid
- 如何讓你的 Linux 系統乾淨整潔Linux
- 五分鐘讓你的JavaScript更進一步!JavaScript
- 程式碼越少越乾淨嗎?
- eclipse 保持程式碼乾淨Eclipse
- [翻譯] 讓你的程式碼更簡短,更整潔,更易讀的ES6小技巧
- 帶引數的 Python 裝飾器讓你的程式碼更優雅Python
- 經驗總結 | 重構讓你的程式碼更優美和簡潔
- 讓你的DEVONthink UI 介面更簡潔?devUI
- 程式碼簡潔之道:編寫乾淨的 React Components & JSXReactJS
- 通過 Laravel 訊息通知使用 EasySms 簡訊服務,讓你的程式碼更簡潔Laravel
- 讓你的Mac更加乾淨整潔——App Cleaner & Uninstaller ProMacAPP
- 讀書筆記-乾淨程式碼筆記
- 乾淨程式碼的幾個特點 -Xebia
- 如何編寫乾淨高效的CSS程式碼CSS
- Spring Boot 整合 Lombok 讓程式碼更簡潔Spring BootLombok
- 使用Async,讓你的Node.js程式碼更優雅Node.js
- Java11正式釋出了,讓你的程式碼更完美?Java
- 一些技巧讓你的 Laravel 程式碼更優雅Laravel
- 嘗試讓查詢更簡單
- 風變程式設計,讓程式設計學習更簡單!程式設計
- 替代 for 迴圈,讓 Python 程式碼更 pythonic !Python
- 乾淨的程式碼: 編寫可讀的函式函式
- 讓你的 Python 程式碼優雅又地道Python
- 如何讓你的Python程式碼更加pythonic ?Python
- Vue2.0 移動端腳手架讓你的開發更簡單Vue
- MXCornerRadius 只需1行程式碼讓你的UIImageView 有任意的cornerRadius圓角!行程UIView