Python 重点和难点
这些内容掌握后,你才算“能用 Python 做项目”。
重点:
- list / dict / tuple / set 使用与性能区别
- 列表推导式、生成器表达式
- *args / **kwargs
- import 模块系统
重点:
- 可变参数
- 装饰器(在 FastAPI 会大量用)
- 类、继承、组合
- 类方法 / 静态方法
- 魔术方法(
__getitem__,__iter__,__enter__, …)
这些直接影响 API 框架、ORM、依赖注入的写法。
重点:
- try/except/else/finally
- 自定义异常
- FastAPI 中异常模型
- 数据库异常捕获(SQLAlchemy)
重点:
- yield
- 自定义迭代器
- 惰性求值(节省内存)
- 大数据处理(不一次性加载)
重点:
- 包(package)
- 模块(module)
- 项目结构设计
- utils、公用模块的封装方式
重点:
- async/await
- 协程模型
- asyncio 的事件循环
- 异步数据库、异步 Redis、异步 HTTP
这是 FastAPI 的最大卖点。
重点:
- typing(如 List, Dict, Union, Optional)
- TypedDict
- Pydantic 模型
在现代 Python 项目中是必须掌握的。
你的项目核心:
- SQLAlchemy ORM 模型、会话管理、查询优化
- Pydantic v2 的数据模型与验证
- FastAPI 的路由、依赖、错误处理、JWT、权限系统
重点:
- loguru
- debug 模式封装
- profiling:cProfile、time.perf_counter
以下是真正的难点,要理解透才算“精通 Python”。
难点:
- yield 的状态机原理
- 惰性求值 vs 立即求值
- 生成器何时停止(StopIteration)
- next() 的工作方式
难点:
- 闭包
- 三层嵌套的函数结构
- 装饰带参数的函数
- 装饰器 + FastAPI 依赖注入
难点:
- 协程不是线程
- await 的暂停点
- 事件循环的调度机制
- 阻塞操作如何避免(如数据库、IO)
难点:
- Session 的生命周期
- flush vs commit vs expire
- ORM 转 dict(你也做过这个)
- 延迟加载
- select() vs 传统 Query API
难点:
- 多层嵌套模型
- model_validator / field_validator
- GenericModel
- BaseModel 转换 ORM 实例
难点:
- monkey patch
- 动态导入
- 元类(metaclass)
- 动态创建类
通常在框架内部才能见到这些。
难点:
- GIL
- 多进程 vs 多线程
- asyncio + CPU 密集处理问题
- deque、heapq、bisect 的应用场景
-
第一阶段:巩固 Python 基础
-
第二阶段:深入迭代器、生成器、装饰器
-
第三阶段:异步 FastAPI、数据库
- 建议系统整理 Session、事务、依赖注入
-
第四阶段:工程化能力
包括:
- 优雅的日志与调试系统
- 模块化框架
- 可复用工具库