《流畅的Python》函数装饰器与闭包
有很多人抱怨,把这个特性命名为“装饰器”不好。主要原因是,这个名称与 GoF 书使用的不一致。装饰器这个名称可能更适合在编译器领域使用,因为它会遍历并注解语法书。 —“PEP 318 — Decorators for Functions and Methods”
本章的最终目标是解释清楚函数装饰器的工作原理,包括最简单的注册装饰器和较复杂的参数化装饰器。
讨论内容:
- Python 如何计算装饰器语法
- Python 如何判断变量是不是局部的
- 闭包存在的原因和工作原理
nonlocal
能解决什么问题- 实现行为良好的装饰器
- 标准库中有用的装饰器
- 实现一个参数化的装饰器