美文网首页
多个装饰器存在时的执行顺序

多个装饰器存在时的执行顺序

作者: Gavininn | 来源:发表于2019-06-10 10:49 被阅读0次

装饰器的执行顺序是怎样的?

@A
@B
@C
def  f():
    pass

装饰器函数的执行顺序分为定义阶段执行阶段,装饰器函数在被装饰函数定义好后立即执行

  • 在函数定义阶段:执行顺序是从靠近函数的装饰器开始,自内而外的执行

  • 在函数执行阶段,执行顺序由外而内,一层层执行

举个例子:

def  war1(func):
    print("war1")
    def inner(*args, **kwargs):
        print("====war1 start====")
        func(*args, **kwargs)
        print("====war1 end====")
    return inner


def  war2(func):
    print("war2")
    def inner(*args, **kwargs):
        print("====war2 start====")
        func(*args, **kwargs)
        print("====war2 end====")
    return inner

@war1
@war2
def f():
    print("****self****")

f()

相关文章

  • 多个装饰器存在时的执行顺序

    装饰器的执行顺序是怎样的? 装饰器函数的执行顺序分为定义阶段和执行阶段,装饰器函数在被装饰函数定义好后立即执行 在...

  • Day05

    一、装饰器进阶 多个装饰器同时装饰一个函数,执行顺序是由上往下执行被装饰函数执行之前的操作,再执行被装饰函数,最后...

  • Python 装饰器执行顺序迷思

    探究多个装饰器执行顺序 装饰器是Python用于封装...

  • Python 入门之多个装饰器执行顺序

    装饰器是 Python 用于封装函数或代码的工具,网上可以搜到很多文章可以学习,在这里要讨论的是多个装饰器执行顺序...

  • 13. Python之装饰器

    1 什么是装饰器 2 为何要用装饰器 3 如何使用装饰器 4 语法糖 5 叠加多个装饰器,加载顺序与运行顺序 6 ...

  • 关于python多重装饰器的执行顺序

    装饰器是Python用于封装函数或代码的工具,网上可以搜到很多文章可以学习,我在这里要讨论的是多个装饰器执行顺序。...

  • 装饰器(四)-多装饰器

    多个装饰器可以共同修饰一个函数,多装饰器的执行顺序从近到远或者说由下而上。其格式如下 @outer2 @outer...

  • python_装饰器篇(多个装饰器下的执行顺序)

    在之前的帖子中,简单自我总结了装饰器的几个情况以及基本上使用,那么有基本上说的都是单个的装饰器修饰方法 有时候我们...

  • 装饰器的执行顺序!!!

    https://www.cnblogs.com/guodengjian/articles/9134944.html

  • 函数装饰器执行顺序

    当一个函数有多个装饰器时,会优先执行离函数最近的装饰器,由于装饰器返回的是函数的函数名引用,并非真正调用函数。

网友评论

      本文标题:多个装饰器存在时的执行顺序

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