一、简单的装饰器
1.为什么要使用装饰器呢?
装饰器的功能:在不修改原函数及其调用方式的情况下对原函数功能进行扩展
装饰器的本质:就是一个闭包函数
那么我们先来看一个简单的装饰器:实现计算每个函数的执行时间的功能
1 import time 2 def wrapper(func): 3 def inner(): 4 start=time.time() 5 func() 6 end=time.time() 7 print(end-start) 8 return inner 9 10 def hahaha(): 11 time.sleep(1) 12 print('aaaaa') 13 hahaha=wrapper(hahaha) 14 hahaha()
上面的功能有点不简介,不完美,下面就引进了语法糖。
1 import time 2 def wrapper(func): 3 def inner(): 4 start=time.time() 5 func() 6 end=time.time() 7 print(end-start) 8 return inner 9 @wrapper 10 def kkk():#相当于kkk=wrapper(kkk) 11 print('aaaaa') 12 kkk()