首页 > 其他 > 详细

一个函数多个装饰器

时间:2019-08-17 13:39:29      阅读:92      评论:0      收藏:0      [点我收藏+]

例:

def wrapper(f):
    def inner():
        print(aike1,你好)
        ret = f()
        print(aike2,你好)
        return ret
    return inner

def wrapper1(f):
    def inner1():
        print(艾克1,你好)
        ret = f()
        print(艾克2,你好)
        return ret
    return inner1

@wrapper1
@wrapper
def func():
    print(in f)
    return 哈哈哈哈
print(func())


#打印:
艾克1,你好
aike1,你好
in f
aike2,你好
艾克2,你好
哈哈哈哈

 执行顺序:

技术分享图片

 

打印规律:语法糖开始从上至下到被装饰函数的返回值,再从下至上打印;被装饰函数的返回值最后打印;
执行规律:全局从上至下,语法糖找下边一层的被装饰函数,没找到不向下找,执行下一层的函数糖(挨着被装饰函数的语法糖优先执行),执行完后依次向上执行。执行时,需要注意函数参数的不断变化

 

一个函数多个装饰器

原文:https://www.cnblogs.com/aizhinong/p/11367863.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!