一、装饰器(decorator)
1.定义:本质是函数(装饰其它函数),就是为了其它函数添加附加功能。
2.原则:一是不能修改被装饰函数的源代码;二是不能修改被装饰函数的调用方式。
3.装饰器包含的知识点:
<1>函数(可作为变量)
<2>高阶函数
a.把一个函数名当作实参传给另一个函数(在不修改被装饰函数的情况下,为其添加新功能)
b.返回值中包含函数名(不修改函数的调用方式)
<3>嵌套函数
高阶函数 + 嵌套函数 ==》 装饰器
4.下面举例分析:
<1>把一个函数名当作实参传给另一个函数
1 import time 2 #把一个函数名当作实参传给另一个函数 3 def hyt(): 4 time.sleep(3) #延迟三秒 5 print('This is hyt') 6 7 def congcong(func): #函数作为变量 8 str_time = time.time() #记录开始时间 9 func() #运行hyt函数 10 stop_time = time.time() #记录结束时间 11 print('The func runs time is %s '%(stop_time-str_time)) #输出:The func runs time is 3.000171661376953 12 13 congcong(hyt)