Python 的程式碼檢查、格式化和型別檢查
目錄
先決條件
完成 開發您的應用程式。
概述
在本節中,您將學習如何為您的 Python 應用程式設定程式碼質量工具。這包括:
- 使用 Ruff 進行程式碼檢查和格式化
- 使用 Pyright 進行靜態型別檢查
- 使用 pre-commit 鉤子自動檢查
使用 Ruff 進行程式碼檢查和格式化
Ruff 是一個用 Rust 編寫的極速 Python 程式碼檢查器和格式化程式。它用一個統一的工具取代了 flake8、isort 和 black 等多個工具。
建立 pyproject.toml
檔案
[tool.ruff]
target-version = "py312"
[tool.ruff.lint]
select = [
"E", # pycodestyle errors
"W", # pycodestyle warnings
"F", # pyflakes
"I", # isort
"B", # flake8-bugbear
"C4", # flake8-comprehensions
"UP", # pyupgrade
"ARG001", # unused arguments in functions
]
ignore = [
"E501", # line too long, handled by black
"B008", # do not perform function calls in argument defaults
"W191", # indentation contains tabs
"B904", # Allow raising exceptions without from e, for HTTPException
]
使用 Ruff
執行這些命令來檢查和格式化您的程式碼
# Check for errors
ruff check .
# Automatically fix fixable errors
ruff check --fix .
# Format code
ruff format .
使用 Pyright 進行型別檢查
Pyright 是一個快速的 Python 靜態型別檢查器,它與現代 Python 功能配合良好。
在 pyproject.toml
中新增 Pyright
配置
[tool.pyright]
typeCheckingMode = "strict"
pythonVersion = "3.12"
exclude = [".venv"]
執行 Pyright
要檢查程式碼中的型別錯誤
pyright
設定 pre-commit 鉤子
Pre-commit 鉤子會在每次提交前自動執行檢查。以下 .pre-commit-config.yaml
片段設定了 Ruff
https: https://github.com/charliermarsh/ruff-pre-commit
rev: v0.2.2
hooks:
- id: ruff
args: [--fix]
- id: ruff-format
要安裝和使用
pre-commit install
git commit -m "Test commit" # Automatically runs checks
摘要
在本節中,您學習瞭如何
- 配置和使用 Ruff 進行程式碼檢查和格式化
- 設定 Pyright 進行靜態型別檢查
- 使用 pre-commit 鉤子自動檢查
這些工具有助於維護程式碼質量並在開發早期發現錯誤。
後續步驟
- 配置 GitHub Actions 以自動執行這些檢查
- 自定義程式碼檢查規則以匹配您團隊的風格偏好
- 探索高階型別檢查功能