python编程系列---多个装饰器装饰一个函数的执行流程
2024-08-29 10:38:25
首先看一个例子
''' 多个装饰器装饰一个函数 ''' # 定义第一个装饰器
def set_func1(func):
def wrapper1(*args,**kwargs):
print('装饰内容开始1')
func(*args, **kwargs)
print('装饰内容结束1')
return wrapper1 # 定义第二个装饰器
def set_func2(func):
def wrapper2(*args,**kwargs):
print('装饰内容开始2')
func(*args, **kwargs)
print('装饰内容结束2')
return wrapper2 # 定义第二个装饰器
def set_func3(func):
def wrapper3(*args,**kwargs):
print('装饰内容开始3')
func(*args, **kwargs)
print('装饰内容结束3')
return wrapper3 @set_func1
@set_func2
@set_func3
def show():
print('Show Run....') show() 结果如下:
装饰内容开始1
装饰内容开始2
装饰内容开始3
Show Run....
装饰内容结束3
装饰内容结束2
装饰内容结束1 进程已结束,退出代码 0
使用简易代码分析执行流程--->实质就是几层函数的嵌套
def wrapper1():
print("wrapper1 start") # 第1步
wrapper2() # 第2步
print("wrapper1 end") # 第10步 def wrapper2():
print("wrapper2 start") # 第3步
wrapper3() # 第4步
print("wrapper2 end") # 第9步 def wrapper3()
print("wrapper3 start") # 第5步
main_function() # 第6步
print("wrapper3 end") # 第8步 def main_func()
print("hello Python") # 第7步 main_func() # start
如果你和我有共同爱好,我们可以加个好友一起交流!
最新文章
- Redis 3.0 与 3.2 配置文件变化
- js调用页面打印
- ERROR actor.OneForOneStrategy: org.apache.spark.SparkContext
- android wireshark抓包和fiddler抓包
- 每天一个linux命令(21):find命令之xargs
- Gym 100851G	Generators (vector+鸽笼原理)
- 工作中常用的QTP操作Excel函数
- Matlab 矩阵运算
- Startup 和 Middleware(中间件)
- 十八、oracle 角色
- IOS 股票K线图、分时图
- Java历程-初学篇 Day09 冒泡排序
- [Sqoop]利用sqoop对mysql运行DML操作
- Spring Boot快速入门(二):http请求
- C#实现完整的防盗自制监控系统
- [FE] 有效开展一个前端项目2 (vuejs-templates/webpack)
- go捕获Ctrl+C信号
- 关于win10安装NET Framework 3.5,错误87的终极解答0x80070057
- python3面向对象注意事项
- restful framework之频率组件
热门文章
- mybatis源码专题(2)--------一起来看下使用mybatis框架的insert语句的源码执行流程吧
- Senparc.Weixin.MP SDK 微信公众平台开发教程(二十二):如何安装 Nuget(dll) 后使用项目源代码调试
- 记录工作中groovy动态生成Flink任务
- 洛谷 P3868 [TJOI2009]猜数字
- [c++] 面试题之犄角旮旯 第壹章
- JQuery发送ajax请求时中文乱码
- 远程桌面连接mstsc 超扎心
- 基于WeChat的消息存储备份、远程控制、小功能项目开源分享计划
- opencv目标检测之canny算法
- 阿里云ESC服务器centos6.9使用及注意事项