装饰器

装饰器

  器:工具

  装饰:指的是为被装饰对象添加功能

  装饰器本身可以是任意调用的对象==》函数

  被装饰对象也是可以被任意可任意调用的对象==》函数

  目标:写一个函数来为另外一个函数添加新功能

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()

 

posted @   msjaxuexi  阅读(104)  评论(0编辑  收藏  举报
编辑推荐:
· 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)
点击右上角即可分享
微信分享提示