装饰器的含义:
装饰器(Decorator):本质上就是一个返回函数的高阶函数,其作用是为其他函数添加附加功能,在代码运行期间动态增加功能的方式
装饰器 = 高阶函数+嵌套函数+闭包
原则
1、不修改被修饰函数的源代码
2、不修改被装饰的函数的调用方式
实现方式
我们要得出运行一个函数所花费的时间。
import time def timmer(func): def warpper(*args,**kwargs): #*args,**kwargs 表示可以传递任何类型的参数 start_time = time.time() func(*args,**kwargs) #在这里执行calculate()函数 end_time = time.time() print('运行时间为%s' %(end_time-start_time)) return warpper @timmer #装饰器放在这里,表示把函数calculate作为参数传给了timmer(calculate) def calculate(l): res = 0 for i in l: time.sleep(0.1) res+=i print(res) calculate(range(20))
草根-920