Python多重装饰函数执行顺序

# --------------------------------------------------------------------------
# python----多个装饰器装饰一个函数 示例代码
# 通过对运行结果的分析,我们可以发现,当多个装饰器装饰一个函数时,
# 执行顺序:最先装饰的装饰器,最后一个执行。遵循先进后出规则 类似于stack
# --------------------------------------------------------------------------
def set_fun_1(func):
    print("set__fun_1 定义")  # 打印用于验证在多个装饰器的情况下,多个装饰器之间的执行顺序

    def call_fun_1():
        print("call_fun_1 执行")  # 当被装饰函数执行时,会打印
        func()

    return call_fun_1


def set_fun_2(func):
    print("set__fun_2 定义")

    def call_fun_2():
        print("call_fun_2 执行")
        func()

    return call_fun_2


# step1:定义体装饰函数
@set_fun_2
@set_fun_1
def test():
    print("黑暗森林")


# step1:开始执行函数
test()


# output:
# set__fun_1 定义
# set__fun_2 定义
# call_fun_2 执行
# call_fun_1 执行
# 黑暗森林
发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章