2026/9/11 18:20:43

“先做事,出错再处理”(使用 `try-except`),区别于传统的 LBYL(Look Before You Leap,先检查再执行)

“先做事,出错再处理”(使用 `try-except`),区别于传统的 LBYL(Look Before You Leap,先检查再执行) 一、 核心语言与底层机制模式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区别于传统的 LBYLLook Before You Leap先检查再执行。应用场景Python 官方推荐的惯用写法。例如直接尝试访问字典的键捕获KeyError而不是先用in检查键是否存在。这使代码更简洁且能清晰表达“键通常存在”的意图。10. SOLID 设计原则核心考点单一职责原则(SRP)、开闭原则(OCP)、里氏替换原则(LSP)、接口隔离原则(ISP)、依赖倒置原则(DIP)。应用场景面向对象代码重构与架构设计的基石。例如通过拆分职责让类更易维护SRP或通过依赖抽象而非具体实现来增强代码的可扩展性DIP。