一、装饰器(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)
View Code

相关文章: