装饰器
第一步
将装饰器函数的返回值,封包函数的函数名赋值给实际功能的函数名
实际功能函数名 = 装饰器函数名(实际功能函数名)
因为实际功能的名称存于全局名称空间,所以

第二步
运行封包函数,调用装饰功能

这一步主要是运行装饰的额外功能
第三步
这步的做的事情比较多
首先在第一步赋值中
实际功能函数名 = 装饰器函数名(实际功能函数名)
装饰器函数的形参作为实际功能的函数名

然后运行封包函数时,发现了一个形参,这个形参的实参是一个函数名,这个函数名依照名字查找顺序,在局部空间没有找到,然后在全局中找到了,就是实际功能的函数名

然后带上括号,便会运行该实际功能函数
第五步
接受多个不确定数量的函数,运用*和**功能


浙公网安备 33010602011771号