博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
装饰器详解
阅读量:4659 次
发布时间:2019-06-09

本文共 724 字,大约阅读时间需要 2 分钟。

引用https://www.cnblogs.com/jixuege-1/p/5779464.html

从字面意思来看,器代表函数的意思,可以说,装饰器本身就是函数,都是用def语法来定义的。

装饰器:

定义:本质是函数,(装饰其他函数)

为其他函数添加附加功能。

①先来看个简单的,在没学函数之前,我想给定义的函数打个日志,写法如下:

1 def  test1(): 2     pass 3     print('logging') 4  5 def test2(): 6     pass 7     print('logging') 8 #调用 9 test1()10 test2()

②接下来学了函数,我就把打日志定义成一个函数

def logger():    print('logging')def  test1():    pass    logger()def test2():    pass    logger()#调用test1()test2()

假设我写的函数已经上线运行了,某一天,我有个需求,在这个里面新增一个功能,那怎么去做这个事?

最简单的就是:挨个找到100个函数,加上去。但是问题是程序已经运行了,我刚才操作是修改我程序的源代码,会有风险发生。

所以说,我要新增一个功能,不能够修改函数的源代码,函数一旦写好了,原则上不能动源代码了。

所以就有了下面的原则:

  • 不能修改被装饰函数的源代码。
  • 不能修改被装饰的函数的调用方式。装饰器对于被装饰函数是完全透明的。他没有动我的源代码,我该怎么调用运行就怎么运行。

 

转载于:https://www.cnblogs.com/joneylulu/p/10261859.html

你可能感兴趣的文章
RxJS速成 (下)
查看>>
无锁栈与无锁队列
查看>>
微信开发第8章 通过accesstoken将长连接转换为短链接
查看>>
[刷题]Codeforces 785D - Anton and School - 2
查看>>
四川红油的制法
查看>>
Java重写《C经典100题》 --21
查看>>
【Android基础】Fragment 详解之Fragment生命周期
查看>>
链表(裸题)
查看>>
11运算符重载
查看>>
磁盘系统的管理
查看>>
C/S
查看>>
Http Get/Post请求的区别
查看>>
STM32一键下载电路设计原理
查看>>
C语言中函数返回字符串的四种方法
查看>>
10月区块链领域投融资事件盘点
查看>>
Mybatis缓存策略
查看>>
卷积的意义【转】
查看>>
android图形系统详解五:Android绘制模式
查看>>
[剑指offer] 23. 二叉搜索树的后序遍历序列
查看>>
canvas绘画交叉波浪
查看>>