程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

列表(0)

面向对象(0)

标签  

列表(0)

面向对象(0)

日期归档  

学习15.总结#有参装饰器#多个装饰器装饰一个函数

发布于2019-08-05 19:31     阅读(643)     评论(0)     点赞(2)     收藏(3)


有参装饰器

# 在装饰器的基础上再套一层
@auth("QQ")
def foo():
    pass
f = auth("qq")
foo = f(foo)
foo()

多个装饰器装是一个函数

# 先执行离被装饰的函数最近的语法糖
# 小技巧:进入装饰器从上往下,走到最会一个装饰器执行被装饰的函数,退出装饰器从下往上走
def wrapper1(func):
    def inner1(*args,**kwargs):
        print(1)
        func(*args,**kwargs)
        print(11)
    return inner1

def wrapper2(func):  # func == foo
    def inner2(*args,**kwargs):
        func(*args, **kwargs)
        print(22)
    return inner2

def wrapper3(func):
    def inner3(*args,**kwargs):
        print(3)
        func(*args, **kwargs)
        print(33)
    return inner3

@wrapper1  # 1 11
@wrapper3  # 3 33
@wrapper2  #  8 22

def foo():
    print(8)


所属网站分类: 技术文章 > 博客

作者:阿里妈妈

链接:https://www.pythonheidong.com/blog/article/7066/449fca4124ef391076d0/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

2 0
收藏该文
已收藏

评论内容:(最多支持255个字符)