Python 知识地图
Python 文档要按“能写脚本、能做 Web、能处理数据、能接 AI、能排查线上问题”的路线补齐。不能只罗列语法,也不能只给几个脚本片段。
学习路线
mermaid
flowchart TD
A["环境与包管理"] --> B["基础语法和数据结构"]
B --> C["函数、模块和面向对象"]
C --> D["异常、文件和类型标注"]
D --> E["并发、异步和日志调试"]
E --> F["数据库、Web API 和测试"]
F --> G["数据分析、爬虫、CLI 和 AI 开发"]
G --> H["项目结构、部署和面试"]每个模块必须补什么
| 模块 | 必讲原理 | 必备 Demo |
|---|---|---|
| 环境与包管理 | Python 解释器、虚拟环境、pip、依赖锁定、包导入路径 | 创建 venv、安装依赖、导出 requirements |
| 基础语法 | 动态类型、变量引用、可变/不可变对象、作用域 | 参数传递、列表和字典修改 |
| 数据结构 | list、tuple、dict、set、切片、推导式、复杂度 | 订单去重、分组统计 |
| 函数模块 | 函数对象、闭包、装饰器、模块搜索路径 | 日志装饰器、业务模块拆分 |
| OOP | 类、实例、继承、组合、魔术方法、数据类 | 支付策略、DTO 建模 |
| 异常与文件 | 异常传播、上下文管理器、编码、文件流 | CSV 读取、错误行记录 |
| 类型标注 | typing、泛型、Protocol、mypy 思路 | API 返回类型、Repository 接口 |
| 并发异步 | GIL、线程、进程、asyncio、事件循环 | 并发请求下游接口 |
| Web API | 路由、请求响应、中间件、参数校验、异常处理 | FastAPI CRUD 接口 |
| 数据库 | 连接池、事务、参数绑定、防 SQL 注入 | MySQL 查询和事务提交 |
| 数据分析 | NumPy、Pandas、缺失值、分组、透视 | 采集数据清洗报表 |
| 爬虫自动化 | HTTP、解析、限速、重试、反爬边界 | 抓取公开页面并清洗 |
| 测试日志 | pytest、fixture、mock、logging、调试 | 服务函数单测和日志追踪 |
| Python AI | API 调用、Embedding、RAG、工具调用 | 文档问答最小 Demo |
Python 原理重点
mermaid
flowchart TD
A["Python 代码"] --> B["解释器执行"]
B --> C["对象模型"]
C --> D["引用计数和 GC"]
D --> E["GIL 影响线程并行"]
E --> F["asyncio 用单线程调度 IO"]重点要讲清:
- Python 变量保存的是对象引用,不是直接保存对象本身。
- list、dict 是可变对象,函数里修改会影响外部对象。
- GIL 限制的是同一进程内 Python 字节码并行执行,不代表线程完全没用。
- IO 密集任务适合线程或 asyncio,CPU 密集任务更适合多进程或原生扩展。
- 类型标注不改变运行时类型,但能提升可维护性和工具检查能力。
商业场景要求
Python 文档中的 Demo 要优先围绕这些场景:
| 场景 | 需要覆盖 |
|---|---|
| 运维脚本 | 参数解析、日志、异常、退出码 |
| 数据清洗 | 文件读取、缺失值、异常行、导出报表 |
| 后台接口 | FastAPI、校验、数据库、测试 |
| 爬虫采集 | 限速、重试、解析、存储、合规边界 |
| AI 应用 | 调模型、RAG、工具调用、结果校验 |
面试闭环
Python 面试页要按下面方式组织:
mermaid
flowchart TD
A["面试问题"] --> B["标准回答"]
B --> C["追问:原理是什么"]
C --> D["跳转到知识点页"]
D --> E["Demo 和商业场景"]高频问题必须覆盖:
- list 和 tuple 区别。
- dict 为什么查询快。
- 深拷贝和浅拷贝。
- 装饰器原理。
- 生成器和迭代器。
- GIL 是什么。
- 线程、进程、协程区别。
- async/await 工作原理。
- with 上下文管理器。
- Python 项目如何组织和测试。
本章小结
Python 文档要从“脚本能跑”提升到“知道对象模型、并发边界、工程结构和商业场景”。每个页面都要有可运行 Demo、原理解释和真实使用边界。
