上篇文章说过了装饰器的基本语法格式及多参数时的情况。
在实际的工作中,还会出现多个装饰器装饰一个函数的情况。
代码如下:
# 多个装饰器装饰一个函数
def set_fun1(func):
print("set_fun1已被定义") # 打印用于验证在多个装饰器的情况下,多个装饰器之间的执行顺序
def call_fun1(*args, **kwargs):
print("call_fun1执行了") # 当被装饰函数执行时,会打印
return func()
return call_fun1
def set_fun2(func):
print("set_fun2已被定义")
def call_fun2(*args, **kwargs):
print("call_fun2执行了")
return func()
return call_fun2
# 装饰函数
@set_fun2
@set_fun1
def test():
print("******如果你看出这是样样老师的装饰器样本,恭喜你找到组织了******")
test()
将上述代码运行之后,会有如下结果:
set_fun1已被定义
set_fun2已被定义
call_fun2执行

本文探讨了Python中多个装饰器装饰一个函数的场景。通过示例代码展示了装饰器的执行顺序,遵循先进后出的规则,类似于队列操作。同时,通过类比圣诞树装饰品来帮助理解装饰器的执行顺序,强调了最后添加的装饰器先执行的原则。
最低0.47元/天 解锁文章
457

被折叠的 条评论
为什么被折叠?



