2. 没有参数的函数的装饰器
本节目标:
- 在装饰器内部调用原函数。
- 能够为函数提供附加的功能。
- 理解装饰器包装函数的原理。
示例
使用装饰器返回的函数内回调被装饰函数。
def replace_deco(fn):
def take_a_holiday():
print('购机票!')
fn()
print('度假!')
return take_a_holiday
@replace_deco
def do_somthing():
print('上班!')
do_somthing() # ???
上述程序 形参fn绑定的是被装饰函数do_somthing。
do_somthing 重新绑定了 take_a_holiday 函数,在调用do_somthing时,会在调用fn的前后执行相应的打印,从而实现了对原函数加“壳”的操作。