装饰器
1.什么是装饰器
器=>工具
装饰=>指的是为被装饰对象添加新功能
装饰器本身可以是任意可调用的对象=>函数
被装饰的对象也可以是任意可调用的对象=>函数
目标:写一个函数来为另外一个函数添加新功能
2.为何要用装饰器
开放封闭原则:软件一旦上线就应该对修改封闭,对扩展开放
对修改封闭:
1.不能修改功能的源代码
2.也不能修改功能的调用方式
对扩展开放:
可以为原有的功能添加新的功能
装饰器就是要在不修改功能源代码以及调用方式的前提下为原功能添加额外新的功能
3.如何用装饰器
import time
def index():
print('hello')
time.sleep(1)
def outter(func):
def wrapper():
start=time.time()
func()
stop=time.time()
print('time is %s'%(stop-start))
return wrapper
index=outter(index)
index()