美文网首页
Python多重装饰器理解

Python多重装饰器理解

作者: 糊君 | 来源:发表于2017-02-03 10:48 被阅读127次

    举例说明:

    #outer1
    def outer1(func):
        def inner(*args,**kwargs):
            print("认证成功!")
            result = func(*args,**kwargs)
            print("日志添加成功")
            return result
        return inner
    
    #outer2
    def outer2(func):
        def inner(*args,**kwargs):
            print("一条欢迎信息。。。")
            result = func(*args,**kwargs)
            print("一条欢送信息。。。")
            return result
        return inner
    
    @outer1
    
    @outer2
    
    #f1
    def f1(name,age):
        print("%s 正在连接业务部门1数据接口......"%name)
    
    # 调用方法
    f1("jack",18)
    

    执行结果:

    认证成功!
    一条欢迎信息。。。
    jack 正在连接业务部门1数据接口......
    一条欢送信息。。。
    日志添加成功
    

    解析:
    实际上装饰后的效果等价于f1 = outer1(outer2(f1)),关于装饰器的具体解释可以参考这位大神的文章,本文的例子也是从中引用的。

    相关文章

      网友评论

          本文标题:Python多重装饰器理解

          本文链接:https://www.haomeiwen.com/subject/phcdittx.html