装饰器
装饰器
器:工具
装饰:指的是为被装饰对象添加功能
装饰器本身可以是任意调用的对象==》函数
被装饰对象也是可以被任意可任意调用的对象==》函数
目标:写一个函数来为另外一个函数添加新功能
2.为何要使用装饰器?
开放封闭原则:软件一旦上线就应该对修改封闭,对扩展开放。
对修改封闭:
1.不能修改功能的源代码
2.也不能修改功能的调用方式
对扩展开放原则:
可以为原有功能的基础上添加功能
装饰器就是在不能修改源代码和调用的方式的前提下为原功能添加额外的新功能
如何使用装饰器?
无参装饰器模板
def otter(func):#func参数接受被修饰函数的 def wrapper(*args,**kwargs): res = func(*args,**kwargs)#就原函数的参数 #为其添加功能 return res#返回func的返回值 return wrapper#闭包函数,让外部调用
使用方式
@outter def f1(): print('f1 run') #@outtrt 相当于 f1 = outter(f1) #调用 f1()
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 数据库服务器 SQL Server 版本升级公告
· 程序员常用高效实用工具推荐,办公效率提升利器!
· C#/.NET/.NET Core技术前沿周刊 | 第 23 期(2025年1.20-1.26)