CodeRoadMap
首页路线题库资源库文章社区
CodeRoadMap

程序员的学习成长路线图。内容免费开放,登录后可同步路线图与课时进度。

由 程序员柏风 独立维护 · 关于作者

学习

  • 路线图
  • 课程
  • 面试题
  • 文章
  • 我

更多

  • 资源
  • 社区
  • 关于作者
  • 内容说明

© 2026 CodeRoadMap

津ICP备2026012044号-1·津公网安备12011002026155号·coderoadmap@126.com
Python 进阶/课时/代码质量工具
RawBlame
课时目录12 节

Python 进阶

  1. 01Python 进阶地图
  2. 02类型与数据结构
  3. 03OOP 深入
  4. 04函数式特性
  5. 05并发与异步
  6. 06Web 框架
  7. 07包管理与虚拟环境
  8. 08静态类型与校验
  9. 09测试框架
  10. 10代码质量工具
  11. 11算法与数据结构
  12. 12综合练习

代码质量工具

black、ruff、yapf、sphinx、code-formatting。

25 分钟

开发工具链

一致的 ruff、mypy、pre-commit 配置让团队少争论风格、多关注逻辑。本课串联 typing 与 testing 课中的工具。基础环境见 python-fundamentals;Agent 仓库同样依赖 lint/CI,见 ai-agents-essentials;/roadmaps/python。

学习目标

  • 用 ruff 替代 flake8 + isort + 部分 pyupgrade
  • 配置 pre-commit 在提交前自动检查
  • 了解 debugpy、rich 等日常效率工具

ruff 配置

# pyproject.toml
[tool.ruff]
line-length = 100
target-version = "py311"

[tool.ruff.lint]
select = ["E", "F", "I", "UP", "B"]
ignore = ["E501"]

[tool.ruff.format]
quote-style = "double"
ruff check . --fix
ruff format .

pre-commit

# .pre-commit-config.yaml
repos:
  - repo: https://github.com/astral-sh/ruff-pre-commit
    rev: v0.8.0
    hooks:
      - id: ruff
        args: [--fix]
      - id: ruff-format
  - repo: https://github.com/pre-commit/mirrors-mypy
    rev: v1.13.0
    hooks:
      - id: mypy
        additional_dependencies: [types-requests]
pip install pre-commit
pre-commit install
pre-commit run --all-files

调试与日志

import logging
from rich.logging import RichHandler

logging.basicConfig(
    level=logging.INFO,
    format="%(message)s",
    handlers=[RichHandler(rich_tracebacks=True)],
)
log = logging.getLogger(__name__)

log.info("processing lesson %s", "pya-tooling")

VS Code / Cursor:.vscode/launch.json 配置 debugpy 断点调试 FastAPI 或脚本。

工具选型(2025)

用途推荐
Lint + formatruff
类型mypy 或 pyright
测试pytest
包管理uv 或 pip + pyproject
文档MkDocs / Sphinx

练习

  • 为当前项目添加 ruff 配置并 fix 全部告警
  • 安装 pre-commit,故意提交含 lint 错误的文件观察拦截
  • 用 rich 打印一张 lesson 统计表格
  • 小结

    工具链一次配置、全员受益。 下一课用经典数据结构刷算法直觉,为 practice 综合项目热身。

    加载本节练习…
    ← 上一课测试框架下一课 →算法与数据结构