Python 学习路线 MOC

从零基础到可独立交付 Python 脚本、服务与数据/AI 应用的系统学习路线:七个阶段、依赖关系、逐篇目录与 0 到 1 完成标准。

#type / moc #type / synthesis #status / growing #tech / dev #resource / python #tech / lang / python

[!info] related notes

Python 学习路线 MOC

这个概念为什么出现

没有依赖顺序的笔记库会制造假进度:会写 print 却不懂可变共享,会调 FastAPI/LangChain 却不会管理异常与资源,会写 async def 却在事件循环里塞阻塞调用。本路线把「从零到可交付脚本与服务」拆成七个阶段,作为学习与复习的主路径

[!abstract] 路线结论 先建立“对象、名字与可变性”的心智,再学习“序列/映射与面向对象协议”,随后进入异常、上下文与迭代器;并发必须连同 GIL、线程/进程与 asyncio 的边界一起学,最后用工具链、类型标注与工程化能力完成真实程序,需要时再下沉到 CPython 实现。

学 Python 最怕把“语法会写”和“对象模型真正建立起来”混为一谈。整条路线围绕五个问题展开:

  1. 名字绑定、对象身份与可变共享分别解决什么问题
  2. 为什么“一切皆对象”,协议(dunder)如何替代名义接口
  3. 为什么异常是主错误路径,上下文管理器如何管资源
  4. 为什么 asyncio 解决 I/O 并发而不是 CPU 并行,GIL 边界在哪
  5. 为什么虚拟环境、打包与类型标注是现代 Python 工程体验的一部分

如何使用这份路线

场景做法
从零开始按阶段编号顺序读;每篇先跑最小示例,再看规则与边界
已有 JS/Java/Go 经验可加速语法,但不要跳过可变性、迭代器、异常与 asyncio
只抓主干看文末「8 个主干主题」和「0 到 1 完成标准」
查某一主题先定位阶段表中的文件名,再打开对应笔记;细节在原子笔记,不在本页展开
主攻 AI 应用语言主线至少到阶段三 + 阶段四 asyncio;再进 Python 大模型应用开发

难度标记

  • L1 入门 · L2 基础巩固 · L3 核心心智 · L4 工程/并发 · L5 运行时与进阶
  • 源码:否 / 建议 / 需要 —— 是否值得对照官方文档、CPython 或标准库源码加深

依赖关系总图

flowchart TD
    S1["阶段一 基本认知"] --> S2["阶段二 数据与对象模型"]
    S2 --> S3["阶段三 错误、资源与协议"]
    S3 --> S4["阶段四 并发与异步"]
    S3 --> S5["阶段五 工程化开发"]
    S4 --> S5
    S5 --> S6["阶段六 运行时与进阶"]
    S5 --> S7["阶段七 真实项目能力"]
    S4 --> S7
    S6 --> S7

箭头表示认知依赖,不表示前一阶段必须全部背完。每个阶段都应运行最小例子并观察结果。

阶段与子 MOC 对照

阶段目标主要子 MOC
建立 Python 默认思维方式与程序骨架Python 语言基础 MOC · Python 工具链与工程结构 MOC
理解容器、可变性、类与对象协议Python 语言基础 MOC · Python 类型系统与面向对象 MOC · Python 类与面向对象 MOC
异常、上下文管理器、迭代器与生成器Python 类型系统与面向对象 MOC · Python 标准库与应用 MOC
线程/进程/GIL 与 asyncio 生命周期Python 并发与异步 MOC
环境、打包、测试、类型标注与项目结构Python 工具链与工程结构 MOC · Python 测试与质量 MOC · Python 服务工程化 MOC
执行模型、导入、GC、GIL 与性能方法Python 运行时与进阶 MOC
CLI、HTTP、数据访问、AI 应用与交付Python 标准库与应用 MOC · Python Web 与后端 MOC · Python 数据访问 MOC · Python 服务工程化 MOC

阶段一:建立 Python 的基本认知

目标:能解释 Python 解决什么问题;能安装并运行程序;理解模块入口、名字绑定、基础类型、控制流与函数的基本规则。

完成标准

  • 能从零写出脚本并用 python / python -m 验证
  • 能说明名字绑定、可变对象共享与 is / == 的边界
  • 能读懂函数参数、返回值与基础装饰器形态
序号笔记核心问题难度源码
1.1Python 的设计哲学与工程气质Python 为什么这样设计L2建议
1.2安装 Python 并运行第一个程序如何安装并跑通第一个程序L1
1.3Python 程序结构模块、语句、if __name__ 与导入L1
1.4Python 的名字、赋值与作用域入门名字如何绑定到对象L2
1.5Python 数据类型与数据结构内置类型地图如何展开L2
1.6Python 基本类型int/float/bool/None/str 如何表示值L1
1.7Python 运算符与表达式运算符、短路与真值L1
1.8Python 流程控制if/for/while/match 如何组织控制流L1
1.9Python 函数与装饰器参数、闭包与装饰器L2
1.10Python 环境配置本地环境如何稳定可用L1

阶段二:理解 Python 的数据与对象模型

目标:建立 list/tuple/dict/set/str/bytes 的准确模型;分清可变共享与不可变;理解类、属性查找、继承与鸭子类型。

完成标准

  • 能解释列表共享引用导致的“改 A 影响 B”
  • 能说明实例属性与类属性的查找顺序
  • 能用特殊方法让对象接入 len/in/上下文协议的入口直觉
序号笔记核心问题难度源码
2.1Python 列表与元组可变序列与不可变序列差在哪L2
2.2Python 字典 (dict)键约束、查找与插入顺序L2建议
2.3Python 集合去重、成员测试与不可变集合L2
2.4Python 字符串与字节str/bytes、编码与不可变性L2
2.5Python 可变性、身份与拷贝is/==、浅拷贝与深拷贝L3建议
2.6Python 推导式与生成器表达式声明式构造容器的边界L2
2.7Python 类与面向对象class 如何组织状态与行为L2
2.8Python 类属性与实例属性状态放在哪里、查找顺序L3建议
2.9Python 实例方法、类方法与静态方法三种方法绑定差在哪L3
2.10Python 继承、重写与 super复用与协作调用如何发生L3
2.11Python 多重继承与 MRO多父类如何决定查找顺序L4建议
2.12Python 特殊方法dunder 如何接入语言协议L3建议
2.13鸭子类型为何“像鸭子”即可协作L3
2.14Python None 与真值判定空值与假值如何区分L2

阶段三:错误、资源与协议

目标:把异常当作可组合控制流;掌握上下文管理器;用迭代器/生成器表达惰性序列;理解 typing 注解与运行时的边界。

完成标准

  • 能设计合理的异常层次与 raise ... from
  • 能实现并正确使用 with / 异步上下文
  • 能区分可迭代对象、迭代器与生成器
  • 能说明类型注解默认不强制运行时检查
序号笔记核心问题难度源码
3.1Python 错误处理异常如何成为主错误路径L3
3.2Python 异常层次与异常链何时自定义异常、如何保留因果L3
3.3Python 上下文管理器with 如何配对获取与释放L3建议
3.4Python 迭代器与生成器惰性序列与协议如何工作L3建议
3.5Python 类型标注入门注解解决什么、不解决什么L3
3.6Python dataclass 与命名元组数据载体如何减少样板L2
3.7Python Protocol 与结构化类型静态鸭子类型如何表达L4

阶段四:并发与异步

目标:先分清并行与并发、CPU 与 I/O;再学线程/进程与 asyncio 事件循环;掌握取消、超时与阻塞调用的边界。

完成标准

  • 能解释 GIL 对 CPU 密集与 I/O 密集的不同影响
  • 能用 asyncio 并发多个 I/O 任务并正确取消
  • 知道何时用线程、进程池或 asyncio.to_thread
序号笔记核心问题难度源码
4.1Python 并发模型总览线程/进程/异步各自解决什么L3
4.2Python GIL 与线程GIL 限制什么、不限制什么L4建议
4.3Python 多进程与进程池CPU 密集如何绕过 GILL3
4.4Python 异步编程async/await 与事件循环L3建议
4.5asyncio 任务、超时与取消结构化并发直觉如何落地L4建议
4.6Python 同步原语与队列锁、事件与跨任务通信L3

阶段五:工程化开发

目标:掌握虚拟环境与依赖锁定、包布局、测试、静态检查、日志与配置。

完成标准

  • 能用现代工具(如 uv/venv)创建可复现环境
  • 能写 pytest 风格测试并组织项目包
  • 能配置格式化/静态检查,并说明类型检查的位置
序号笔记核心问题难度源码
5.1Python 包管理演进pip/venv/poetry/uv 关系L2
5.2virtualenv · uv · poetry环境与依赖工具如何选型L2
5.3Python 模块、包与导入包布局与导入规则L3建议
5.4Python 项目结构与打包src 布局、pyproject 与分发L3
5.5Python 用 pytest 做测试夹具、参数化与可维护测试L3
5.6Python 静态检查与 Rufflint/format 如何进入工作流L2
5.7Python 日志logging 层次与结构化日志L2
5.8Python 配置管理环境变量、配置文件与密钥边界L2
5.9[[ruff|Ruff]] · Pylance工具对象入口L1

阶段六:运行时与进阶

目标:理解 CPython 执行与对象表示的边界;导入系统、GC、描述符与性能方法论。不把实现细节写成语言永久承诺。

完成标准

  • 能区分“语言语义”与“CPython 当前实现”
  • 能解释引用计数 + 分代 GC 的直觉模型
  • 能对热点做测量后再谈优化
序号笔记核心问题难度源码
6.1Python 执行模型概览源码如何变成字节码并执行L4建议
6.2Python 对象模型与内存PyObject 与引用计数直觉L4需要
6.3Python 垃圾回收循环引用如何被处理L4建议
6.4Python 导入系统finders/loaders 与缓存L4建议
6.5Python 描述符与属性访问属性查找的完整链路L5需要
6.6Python 元类概览何时才需要元类L5建议
6.7Python 性能方法论测量、算法、本地扩展边界L4
6.8C 扩展与 FFI 概览何时下沉到原生代码L4

阶段七:真实项目能力

目标:用标准库与主流生态交付 CLI、HTTP 服务、数据访问与 AI 应用;理解框架位置,不替代语言主线。

完成标准

  • 能独立完成 CLI 与一个可测试的 HTTP API
  • 能处理 JSON、配置、日志与基本错误模型
  • 能把 AI/Agent 应用挂在清晰的服务边界上(可选方向)
序号笔记核心问题难度源码
7.1使用 argparse 构建 CLI如何做可测试命令行工具L3
7.2使用标准库/星lette 思维构建 HTTP 服务请求生命周期如何组织L3
7.3Python JSON 与序列化编解码边界与自定义类型L2
7.4Python 路径与文件 IO现代文件路径 APIL2
7.5Python HTTP 客户端requests/httpx 选型L2
7.6FastAPI何时用框架而不是裸 HTTPL3
7.7Python 数据访问与 SQLAlchemyORM/SQL 边界L4
7.8Python 认证与 JWT认证如何接入 HTTP 边界L3
7.9Python 服务优雅关闭信号、任务排空与依赖关闭L4
7.10Python 可观测性日志、指标与追踪入口L4
7.11Python Docker 部署镜像、依赖与多阶段构建L3
7.12Python 大模型应用开发AI 应用主题入口L3
7.13Python 调用 AI 接口同步 HTTP 调用模型服务L2
7.14Python RAG Agent检索增强应用骨架L3
7.15Python Tool Calling Agent工具调用闭环L3
7.16Python Agent API 服务把 Agent 暴露为服务L3
7.17DailyUse 初始化 Python 应用仓库内实战脚手架L2

[!tip] 目录状态 本路线表中的语言主线与工程主线原子笔记已按依赖齐套;应用层 AI 专题与部分工具对象页沿用仓库既有笔记。细节深度可继续迭代。

如果只抓主干,优先这 8 个主题

  1. Python 的名字、赋值与作用域入门
  2. Python 可变性、身份与拷贝(或阶段二先吃透 list/dict)
  3. Python 函数与装饰器
  4. Python 类属性与实例属性
  5. Python 特殊方法 / 鸭子类型
  6. Python 错误处理
  7. Python 迭代器与生成器
  8. Python 异步编程

一条实用学习原则

不要把 Python 学成“背第三方库 API”。先把 名字与对象、可变性、协议、异常、异步边界 五条主线学稳,再进入打包、Web、数据库和 AI 应用。

0 到 1 的完成标准

  • 能解释为什么“变量赋值”更像名字绑定而不是箱子装值
  • 能说明可变默认参数与共享列表的危险
  • 能用异常表达业务失败,并用 with 管理资源
  • 能实现一个简单迭代器/生成器,并说明耗尽语义
  • 能解释 asyncio 不适合什么工作负载
  • 能在可复现虚拟环境中安装依赖并跑测试
  • 能完成一个小型 CLI 或 HTTP API 的可验证闭环
  • 能区分“语言语义”和“CPython 实现细节”

认知跳跃提醒(按路线可规避)

  1. 未理解可变共享就学类与继承 → 先 1.4 / 2.5
  2. 未理解异常与上下文就上 asyncio 取消 → 先 3.1 / 3.3
  3. 未理解 GIL 与阻塞就堆 async def → 先 4.1 / 4.2 / 4.4
  4. 未测量就谈“Python 慢/换语言” → 先 5.5 / 6.7

相关入口

自测题

  1. 为什么并发阶段要放在异常与上下文管理器之后?
  2. 阶段六运行时笔记与阶段二对象模型应如何配合阅读?
  3. 若时间有限,优先抓哪 8 个主干主题?
答案
  1. 取消、超时与资源释放是并发正确性的前置;不会 with/异常链时,异步取消只会更乱。
  2. 先掌握语言层对象、属性与协议语义,再读 CPython 表示与 GC;实现细节不回写为规范。
  3. 名字绑定、可变性、函数/装饰器、类属性、特殊方法/鸭子类型、错误处理、迭代器/生成器、异步编程。

BodySense 项目实战入口(把 Python 基础落到真实代码)

[!info] BodySense 的 AI 服务用 Python + FastAPI + LangChain 实现。下面的代码是你把「类型注解 / 协议 / 可变性 / 异步 / 迭代器」知识落到实处的样本。阅读顺序:先读代码注释 → 翻对应笔记 → 回看代码

想练的知识点去看的代码(仓库内相对路径)对应笔记
Pydantic 模型、运行时校验、default_factoryapps/ai-service/src/models/stream_event.pyPython 类型基础 · Python 可变性与拷贝 · TS 静态类型与运行时校验
异步生成器、流式路由、资源管理apps/ai-service/src/api/routes/runtime.pyPython 异步编程 · Python 迭代器与生成器 · Python 错误处理
  • 流式链路教材(仓库内):docs/learning/06-javascript-typescript-streaming.md
  • 由易到难的实战任务(仓库内):docs/learning/05-practice-tasks.md
  • 跨语言对照(同一契约的 Go/TS 实现):Go 学习路线 · TypeScript 学习路线 · BodySense MOC
创建于 2026/7/15 更新于 2026/7/15