Skip to content

02-核心编程篇

核心编程篇面向已经掌握 Python 基础语法的学习者,重点建立可维护、可复用、可测试的 Python 编程能力。本篇从函数开始,逐步进入面向对象、异常处理、迭代协议、装饰器与类型提示。

本篇代码基于 Python 3.13+ 编写。每个专题都配有独立示例项目(uv + hatchling + pytest),可进入对应项目目录使用 uv run pytest 验证。


学习目标

完成本篇后,你应该能够:

  • 用函数拆分业务逻辑,理解参数传递、作用域和闭包行为。
  • 用类组织状态和行为,掌握继承、封装、多态以及常用设计原则。
  • 设计清晰的异常边界,正确使用自定义异常和上下文管理器。
  • 理解迭代协议,能够编写迭代器、生成器和异步生成器。
  • 使用装饰器封装横切逻辑,例如日志、鉴权、缓存、重试和计时。
  • 用类型提示表达接口约束,提升代码可读性和静态检查质量。

章节导航

01-函数

章节内容说明
01-函数基础函数定义、调用、返回值建立函数式拆分的基本能力
02-函数参数详解位置参数、关键字参数、默认参数、*args**kwargs理解 Python 参数绑定规则
03-变量作用域LEGB、globalnonlocal、闭包变量避免作用域相关的隐蔽错误
04-Lambda匿名函数Lambda、排序键、回调、表达式限制掌握轻量函数表达式的适用边界
05-Python内置函数详解常用内置函数、组合使用、实践场景提升日常代码表达效率

02-面向对象编程

章节内容说明
01-面向对象基础类、对象、构造方法、实例化从数据和行为的组合理解对象
02-属性与方法实例属性、类属性、实例方法、类方法、静态方法理解对象成员的归属和调用方式
03-继承继承、super()、多重继承、MRO掌握复用机制及其风险
04-封装访问约定、@property、描述符控制对象状态的暴露方式
05-多态鸭子类型、抽象基类、接口约束写出面向行为而非具体类型的代码
06-设计原则组合优先、SOLID、职责拆分建立工程化建模意识
07-数据类dataclass、字段默认值、不可变对象简化数据对象定义
08-魔术方法运算符重载、容器协议、上下文协议让自定义对象融入 Python 语法
09-元类类创建过程、元类、注册机制理解高级框架的底层机制
10-子类钩子__init_subclass__、类注册、约束校验在类定义阶段注入规则

03-错误与异常

章节内容说明
01-错误与异常基础语法错误、运行时错误、常见异常类型建立异常分类认知
02-异常处理tryexceptelsefinally正确处理可恢复错误
03-抛出异常raise、自定义异常、异常链设计清晰的错误语义
04-上下文管理器with__enter____exit__contextlib管理资源生命周期

04-迭代器与生成器

章节内容说明
01-迭代基础可迭代对象、迭代器、for 循环原理理解 Python 遍历机制
02-自定义迭代器__iter____next__、状态维护编写自定义遍历逻辑
03-生成器基础yield、生成器函数、生成器表达式用惰性计算处理序列数据
04-生成器高级特性send()throw()close()、协程式生成器理解生成器双向通信
05-itertools模块无限迭代器、组合迭代器、分组与排列使用标准库构建高效数据管道
06-异步生成器async for、异步迭代协议、流式数据处理异步数据流

05-装饰器与闭包

章节内容说明
01-函数是一等公民函数对象、传参与返回、嵌套函数为闭包和装饰器打基础
02-闭包与作用域链闭包、自由变量、__closure__nonlocal理解状态封装方式
03-装饰器核心原理装饰器语法、包装函数、functools.wraps掌握装饰器的本质
04-带参数装饰器与装饰器工厂装饰器工厂、多层闭包、参数化配置写出可配置的装饰器
[05-functools 标准装饰器](./05-装饰器与闭包/05-functools 标准装饰器.md)lru_cachecached_propertysingledispatch使用标准工具解决常见问题
06-装饰器高级用法与最佳实践类装饰器、方法装饰器、组合顺序控制复杂场景下的行为
07-装饰器边界情况与调试实战调试、签名保留、异常定位、反模式避免装饰器带来的维护问题

06-类型提示

章节内容说明
01-类型提示基础基础类型、容器类型、可选类型、联合类型用类型注解表达基本契约
02-类型进阶应用泛型、协议、TypedDict、回调类型描述更复杂的数据和接口
03-高级类型特性ParamSpecTypeVar、类型守卫、Python 3.12+ 类型语法为库代码和框架代码建立类型边界

推荐学习路线

text
01-函数

02-面向对象编程

03-错误与异常

04-迭代器与生成器

05-装饰器与闭包

06-类型提示

如果你的目标是快速写出可用脚本,可以先完成函数、异常和迭代器章节;如果你的目标是后端、框架或大型项目开发,面向对象、装饰器和类型提示应完整学习。


示例项目

专题示例项目运行方式
01-函数01-函数/functions_demo/uv run pytest
02-面向对象编程02-面向对象编程/oop_demo/uv run pytest
03-错误与异常03-错误与异常/exceptions_demo/uv run pytest
04-迭代器与生成器04-迭代器与生成器/iterators_demo/uv run pytest
05-装饰器与闭包05-装饰器与闭包/decorators_demo/uv run pytest
06-类型提示06-类型提示/type_hints_demo/uv run pytest

运行示例项目时,先进入对应项目目录:

bash
cd 2-core/01-函数/functions_demo
uv run pytest

学习建议

  • 先读章节 README,把握该专题的结构,再进入具体文章。
  • 每学完一个专题,运行对应示例项目的测试,确认代码行为。
  • 阅读函数、装饰器、类型提示章节时,重点关注“接口设计”和“调用边界”。
  • 阅读面向对象章节时,重点区分“能继承”和“应该继承”。
  • 阅读异常章节时,关注错误是否可恢复、错误语义是否对调用者清晰。