语言指南
编写和调试 Python 快 3 倍,用的是 Claude Code
Django、FastAPI、pandas、pytest,全部在终端里完成
Claude Code 开箱即用地支持 Python,它能读取你的项目结构、理解虚拟环境,并能在终端里编写、测试和调试 Python 代码。无论你是用 FastAPI 构建接口、用 pandas 分析数据,还是编写 Django 应用,Claude Code 都理解 Python 的生态系统,能写出符合你项目规范、风格自然、类型良好的代码。
Claude Code 原生支持 Python 项目。把它指向你的 Python 代码库,它就能理解你的依赖、测试框架和编码模式。它尤其擅长编写 pytest 测试、结合完整的 traceback 上下文调试异常、重构模块,以及在整个项目中添加类型提示。
快速开始
开始使用 Python 项目
打开终端,用 cd 进入你的 Python 项目目录,然后运行 claude。就这么简单。Claude Code 会通过读取 pyproject.toml、setup.py、requirements.txt 或 Pipfile 自动识别你的 Python 项目。从第一条命令开始,它就能理解你的项目结构、依赖关系和包组织方式。
在项目根目录创建一个 CLAUDE.md 文件,写上你特定于 Python 的命令:测试运行器(pytest、python -m pytest),linter(ruff check、flake8),格式化工具(ruff format、black),以及类型检查器(mypy、pyright)。这样 Claude Code 就能在每次改动后自行验证自己的工作。
如果你的团队使用特定的模式,比如 Google 风格的 docstring、绝对导入,或者特定的测试目录结构,把这些约定添加到 CLAUDE.md 中。Claude Code 会在每次交互前读取这个文件,因此它从一开始生成的代码就能符合你项目的风格。这样就不用再反复来回修正风格选择了。
工作流
常见的 Python 工作流
搭建新的接口、模型、序列化器和数据库迁移。Claude Code 会读取你现有的 URL 模式和模型定义,生成符合你项目约定的代码。它能处理 Django 的基于类的视图、FastAPI 的依赖注入,以及 Pydantic 模型校验。
描述你想要的数据转换,Claude Code 就会写出 pandas 操作,包括 groupby、merge、pivot、窗口函数和复杂的聚合运算。它会读取你的数据结构,写出能正确链式调用、避免常见的 SettingWithCopyWarning 陷阱的高效操作。
Claude Code 能编写全面的 pytest 测试套件:单元测试、参数化测试、fixture、mock 和集成测试。它会读取你的实现代码,生成不仅覆盖正常路径、也覆盖边界情况的测试。它能处理用于异步代码的 pytest-asyncio,以及用于 Django 项目的 pytest-django。
为没有类型标注的 Python 代码添加类型提示,生成 Google 或 NumPy 风格的 docstring,修复 mypy 或 pyright 报出的错误。Claude Code 深入理解 Python 的类型系统,包括泛型、Protocol、TypeVar、重载和 ParamSpec,并为你的代码库应用恰当的类型模式。
Python 特性
针对 Python 的能力
Claude Code 理解 Python 的渐进式类型系统。它能为没有类型标注的代码库添加类型提示,修复 mypy 和 pyright 报出的错误,并在适当的时候使用像 TypeVar、Protocol、ParamSpec 和 Generic 这样的高级类型模式。它知道该根据你目标的 Python 版本,决定使用 str | None 还是 Optional[str]。
Claude Code 生成的 docstring 符合你项目的风格,无论是 Google、NumPy 还是 Sphinx 格式。它会读取函数的实现,理解参数、返回类型和边界情况,写出真正描述函数作用的文档,而不是通用的占位文字。它可以一次性为整个模块添加 docstring。
无论你使用 venv、poetry、pipenv、conda 还是 uv,Claude Code 都会尊重你的虚拟环境配置。它会读取你的依赖文件,了解哪些包以哪个版本可用,因此它永远不会建议使用你没有安装的库,也不会写出针对某个更新版本中已变更接口的代码。
用它来构建
用 Claude Code 构建 Python 接口
描述你需要的接口,比如“创建一个 POST /api/users 接口,接收姓名和邮箱,校验邮箱格式,保存到数据库,并以 201 状态返回创建的用户”,Claude Code 就会写出路由、Pydantic 模型(或 Django 序列化器)、数据库查询和错误处理逻辑。它会读取你现有的代码来匹配模式:如果你其他的接口使用依赖注入,新接口也会这样做。
Claude Code 可以根据数据模型的描述,生成一套完整的 CRUD 接口。它会生成模型、路由、校验 schema、数据库迁移(使用 Alembic 或 Django)以及测试文件。每个生成的文件都遵循你的项目结构,如果你的路由放在 app/api/v1/、模型放在 app/models/,Claude Code 就会把文件放在对应的位置。它还会把新路由接入你现有的应用实例,并添加恰当的 HTTP 状态码和错误响应。
接口构建完成后,让 Claude Code 编写测试。它会生成覆盖正常路径、校验错误、重复数据处理、认证失败和边界情况的 pytest 测试。对于 FastAPI 项目,它会使用 httpx.AsyncClient 配合合适的测试 fixture。对于 Django,它会使用 APIClient 配合基于 factory 的测试数据。然后它会运行测试,确保在你提交之前一切都能通过。
常见问题
Python 版 Claude Code,常见问题
Claude Code 能读取并理解 Jupyter notebook 文件(.ipynb),分析单元格的输出,并帮助你调试 notebook 中的代码。不过,Claude Code 是在终端里运行的,所以当你把 notebook 的逻辑抽取到 Python 脚本或模块中时,效果最好。在数据探索场景中,很多开发者会用 Claude Code 把分析代码写在 .py 文件里,然后导入到 notebook 中做可视化。
Claude Code 支持所有主流的 Python 框架:用于 Web 开发的 Django、FastAPI、Flask、Starlette 和 Tornado;用于数据科学的 pandas、NumPy、polars 和 scikit-learn;用于测试的 pytest、unittest 和 hypothesis;用于数据库访问的 SQLAlchemy、Tortoise ORM 和 Django ORM;用于任务队列的 Celery 和 Dramatiq。它会读取你项目的依赖关系,了解你在使用哪些框架,并应用针对该框架的模式。
Claude Code 会自动检测你的虚拟环境配置。它会读取 pyproject.toml、requirements.txt、Pipfile 和 poetry.lock,理解你项目的依赖关系。在运行测试或脚本时,它会遵循你项目的配置。你可以把虚拟环境激活命令和测试运行器添加到 CLAUDE.md 文件中,这样 Claude Code 在每次操作时都会使用正确的环境。
可以。Claude Code 擅长编写数据转换流水线、pandas 操作、SQL 查询和统计分析代码。它能读取 CSV 文件,理解数据结构,编写清洗和转换逻辑,并用 matplotlib 或 plotly 生成可视化图表。对于复杂的数据流水线,它能帮你把多步骤的转换拆分成可读、可测试的函数,而不是堆在一个庞大的 notebook 单元格里。
描述你期望的行为,让 Claude Code 为你的函数编写 pytest 测试。它会读取你现有的测试模式、fixture 和 conftest.py,生成符合你风格的测试。使用 TDD 工作流:先描述行为,让 Claude Code 写出测试,然后实现代码让测试通过。
可以。Claude Code 能提取函数、跨文件重命名变量、把类转换成 dataclass、添加类型提示、重新组织模块结构,并对遗留代码进行现代化改造。在做任何改动之前,它会读取整个项目来理解依赖关系,重构之后还会运行你的测试套件,确认没有破坏任何东西。