python --多个叠加装饰器
def deco1(func1): def wrapper1(*args,**kwargs): print("运行deco1_wrapper1") res1=func1(*args,**kwargs) return res1 return wrapper1 def deco2(func2): def wrapper2(*args,**kwargs): print("运行deco2_wrapper2") res2=func2(*args,**kwargs) return res2 return wrapper2 def deco3(x): def outter3(func3): def wrapper3(*args,**kwargs): print("运行deco3_wrapper3") res3=func3(*args,**kwargs) return res3 return wrapper3 return outter3 @deco1 #index=deco1(wrapper2的内存地址) ===> index=wrapper1 的内存地址 @deco2 #index=deco2(wrapper3的内存地址) ===> index=wrapper2 的内存地址 @deco3(1) #===>@outter3===> index=outter3(index) ===>index=wrapper3 的内存地址 def index(x,y): print("from index %s,%s" %(x,y)) index(1,2)
'''执行顺序是自上而下的,即wrapper1 --> wrapper2--> wrapper3'''
/usr/local/bin/python3.8 /Users/futantan/PycharmProjects/S14/函数的学习/迭代器.py 运行deco1_wrapper1 运行deco2_wrapper2 运行deco3_wrapper3 from index 1,2 Process finished with exit code 0
每天进步一点点~~
分类:
python
标签:
python
, python 小案子
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南