知识内容:
1.装饰器介绍
2.开放封闭原则
3.装饰器的固定结构
4.带参数的装饰器
5.多个装饰器装饰一个函数
一、装饰器介绍
1.装饰器的定义
定义: 从本质上讲装饰器还是函数,但是它是为了来装饰其他函数,也就是为了附加一些功能而产生的
2.装饰器的功能及本质
功能: 在不修改原函数及其调用方式的情况下对原函数功能进行拓展
本质: 就是一个函数,也可以说是一个闭包函数
3.装饰器的原则
(1)不能修改被装饰的函数的源代码
(2)不能修改被装饰的函数的调用方式
以上两点说白了就算装饰器对被装饰的函数来说是透明的,也就是被装饰的函数中根本不知道装饰函数的存在,
被装饰的函数还是和原来一样
4.一个简单的装饰器
1 # 统计程序运行时间的装饰器: 2 import time 3 4 def timmer(func): 5 def warpper(*args, **kwargs): 6 start_time = time.time() 7 func() 8 stop_time = time.time() 9 print("The func run time is %s" % (stop_time-start_time)) 10 return warpper 11 12 @timmer 13 def test1(): 14 time.sleep(3) 15 print("In the test1") 16 17 18 test1()
5.实现装饰器需要的知识
实现装饰器的知识储备:
(1)函数即"变量"
(2)高阶函数
(3)嵌套函数
高阶函数 + 嵌套函数 -> 装饰器
关于以上内容可以见我另外一篇博客,具体位置: 点这里
二、开放封闭原则
开放封闭原则是开发中的一个重要概念,主要内容如下:
当然在python的开发中使用装饰器可以很好地实现这个原则,因为装饰器可以在不修改原函数及其调用方式的情况下对原函数功能进行拓展
三、装饰器的固定结构
四、带参数的装饰器
五、多个装饰器装饰一个函数
原文:https://www.cnblogs.com/wyb666/p/8748102.html