装饰器的含义:

  装饰器(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))

 

posted on 2022-05-27 15:16  草根920  阅读(111)  评论(0编辑  收藏  举报