# --------------------------------------------------------------------------
# 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 执行
# 黑暗森林