一、 核心语言与底层机制模式
1. 迭代器与生成器模式 (Iterator & Generator)
- 核心考点:实现
__iter__和__next__协议;使用yield关键字实现惰性计算(按需生成数据)。 - 应用场景:分页浏览大型数据集、流式传输百万行数据而无需全部加载到内存中。
2. 装饰器模式 (Decorator Pattern)
- 核心考点:闭包原理、
functools.wraps保留元信息、@语法糖。 - 应用场景:在不修改原函数的前提下,动态添加日志记录、性能跟踪、审计或权限控制等额外功能。
3. 上下文管理器模式 (Context Manager)
- 核心考点:实现
__enter__和__exit__魔术方法,配合with语句使用。 - 应用场景:自动化管理资源(如文件读写自动关闭、数据库连接释放、锁的获取与释放),防止资源泄露。
4. 作用域与变量查找模式 (LEGB Rule)
- 核心考点:Local(局部)、Enclosing(嵌套)、Global(全局)、Built-in(内置)的查找顺序;
global与nonlocal关键字的区别。 - 应用场景:解决函数内外变量修改冲突、闭包中的变量绑定问题。
二、 经典面向对象设计模式 (GoF)
5. 单例模式 (Singleton Pattern)
- 核心考点:重写
__new__方法、多线程安全、避免__init__重复执行。 - 应用场景:确保全局只有一个实例(如数据库连接池、配置管理器),避免重复创建对象导致资源过载。
6. 工厂模式 (Factory Pattern)
- 核心考点:将对象的创建与使用分离,处理复杂的条件逻辑。
- 应用场景:根据环境变量或配置动态创建不同的对象(如开发环境连SQLite,生产环境连PostgreSQL)。
7. 观察者模式 (Observer Pattern)
- 核心考点:定义对象间的一对多依赖关系,状态改变时自动通知所有订阅者。
- 应用场景:事件驱动系统、实时数据监控、当数据源变化时自动更新前端仪表板。
8. 策略模式 (Strategy Pattern)
- 核心考点:定义一系列算法并封装,使它们在运行时可以互相替换;Python中常利用高阶函数或闭包实现。
- 应用场景:消除代码中冗长的
if-elif条件分支,如选择不同的数据清洗方法、不同的支付接口或排序算法。
三、 Pythonic 编码与架构范式
9. EAFP 编程范式 (Easier to Ask for Forgiveness than Permission)
- 核心考点:“先做事,出错再处理”(使用
try-except),区别于传统的 LBYL(Look Before You Leap,先检查再执行)。 - 应用场景:Python 官方推荐的惯用写法。例如直接尝试访问字典的键,捕获
KeyError,而不是先用in检查键是否存在。这使代码更简洁且能清晰表达“键通常存在”的意图。
10. SOLID 设计原则
- 核心考点:单一职责原则(SRP)、开闭原则(OCP)、里氏替换原则(LSP)、接口隔离原则(ISP)、依赖倒置原则(DIP)。
- 应用场景:面向对象代码重构与架构设计的基石。例如,通过拆分职责让类更易维护(SRP),或通过依赖抽象而非具体实现来增强代码的可扩展性(DIP)。