python编程系列---多个装饰器装饰一个函数的执行流程

首先看一个例子

 1 ''' 多个装饰器装饰一个函数 '''
 2 
 3 # 定义第一个装饰器
 4 def set_func1(func):
 5     def wrapper1(*args,**kwargs):
 6         print('装饰内容开始1')
 7         func(*args, **kwargs)
 8         print('装饰内容结束1')
 9     return wrapper1
10 
11 
12 # 定义第二个装饰器
13 def set_func2(func):
14     def wrapper2(*args,**kwargs):
15         print('装饰内容开始2')
16         func(*args, **kwargs)
17         print('装饰内容结束2')
18     return wrapper2
19 
20 # 定义第二个装饰器
21 def set_func3(func):
22     def wrapper3(*args,**kwargs):
23         print('装饰内容开始3')
24         func(*args, **kwargs)
25         print('装饰内容结束3')
26     return wrapper3
27 
28 
29 
30 
31 @set_func1
32 @set_func2
33 @set_func3
34 def show():
35     print('Show Run....')
36 
37 show()
38 
39 
40 结果如下:
41 装饰内容开始1
42 装饰内容开始2
43 装饰内容开始3
44 Show Run....
45 装饰内容结束3
46 装饰内容结束2
47 装饰内容结束1
48 
49 进程已结束,退出代码 0

使用简易代码分析执行流程--->实质就是几层函数的嵌套

 1 def wrapper1():
 2     print("wrapper1 start") # 第1步
 3     wrapper2()    # 第2步
 4     print("wrapper1 end")  # 第10步
 5     
 6     
 7 
 8 def wrapper2():
 9     print("wrapper2 start")  # 第3步
10     wrapper3()  # 第4步
11     print("wrapper2 end") # 第9步
12     
13     
14 
15 def wrapper3()
16     print("wrapper3 start") # 第5步
17     main_function()   # 第6步
18     print("wrapper3 end")  # 第8步
19     
20 
21 def main_func()
22     print("hello Python") # 第7步
23 
24 main_func()  # start

 

 

如果你和我有共同爱好,我们可以加个好友一起交流!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值