分类目录:《系统学习Python》总目录
尽管本章装饰器的作用主要集中在对函数和类的随后调用进行包装,但我们要牢记装饰器机制比这更加通用,这点很重要一一一它是在函数和类创建之后立即通过任意可调用对象传递它们的一种协议。因此,它可以用来调用任意的创建后处理程序:
def decorator(O):
# 保存或增强函数或类O
return O
@decorator
def F():
pass # F= decorator(F)
@decorator
class C():
pass # C= decorator(C)
只要以这种方式返回最初被装饰的对象,而不是返回一个代理,我们就可以管理函数和类自身,而不只是管理随后对它们的调用。在后续的文章中,我们将看到运用这一思想的更为实际的例子,它们用装饰把可调用对象注册到一个API,并且在创建函数的时候为它们赋值属性。
参考文献:
[1] Mark Lutz. Python学习手册[M]. 机械工业出版社, 2018.