码迷,mamicode.com
首页 > 其他好文 > 详细

装饰器执行步骤解析

时间:2020-04-27 22:56:58      阅读:88      评论:0      收藏:0      [点我收藏+]

标签:flag   wrapper   color   ret   turn   参数   col   port   执行函数   

import time                                 #1.加载模块
def timmer(*args,**kwargs):                     #2.加载变量  5.接收参数True,2,3
    def wrapper(f):                             #6.加载变量  8.f = func1
        print(args, kwargs)                     #9.接收timmer函数的值True,2,3
        def inner(*args,**kwargs):                 #10.加载变量. 13.执行函数inner
            if flag:                         #14 flag = True
                start_time = time.time()             #15 获取当前时间
                ret = f(*args,**kwargs)             #16 执行func1
                time.sleep(0.3)                 #19 等待0.3秒
                end_time = time.time()             #20 获取当前时间
                print(‘此函数的执行效率%f‘ % (end_time-start_time)) #21 打印差值
            else:
                ret = f(*args, **kwargs)
            return ret                         #22 返回给函数调用者func1()
        return inner                         #11 返回给函数调用者wrapper
    return wrapper                         #7.返回给函数调用timmer(flag,2,3)
flag = True                                 #3 加载变量
@timmer(flag,2,3)      # 4.执行函数timmer(flag,2,3) 17.执行函数func1 两步:1.timmer(flag,2,3) 相当于执行wrapper  2.@wrapper 装饰器 func1 = wrapper(func1)
def func1(*args,**kwargs):
    return 666                             #18 返回给函数调用者f(*args,**kwargs)
print(func1())                             #12 执行函数 

装饰器执行步骤解析

标签:flag   wrapper   color   ret   turn   参数   col   port   执行函数   

原文地址:https://www.cnblogs.com/ywx-py/p/12790497.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!