装饰器
器指工具,装饰指的是被装饰对象添加功能
开放封闭原则
软件一旦上线后,就应该遵循开放封闭原则,即对修改源代码是封闭的,对功能的扩展是开放的也就是说我们必须找到一种解决方案:
能够在不修改一个功能源代码以及调用方式的前提下,为其加上新功能
总结:
原则:1、不修改源代码
2、不修改调用方式
目的:
在遵循1和2原则的基础上扩展新功能
装饰器即在不修改被装饰对象源代码与调用方式的前提下,为被装饰器对象添加新功能
装饰器与被装饰的对象均可以是任意可调用的对象
装饰器——》函数
被装饰的对象——》函数
import time
def index():
time.sleep(1)
print('welcome to index page')
def outter(func)
def wrapper():
start_time=time.time()
func()
stop_time=time.time()
print(stop_time-start_time)
return wrapper
index=outer(index)
index()
时间
import time
def timmer(func):
def wrapper(*arges,**kwargs):
start_time=time.time()
res=func(*args,**kwargs)
stop_time=time.time()
print(stop_time-start-time)
return res
return wrapper
@timmer @是执行该下面的函数名 index=outter(index)由上往下执行的
def index():
time.sleep(1)
print('welcome to index page')
return122
有参函数
三层,就是在无参外面还在包一层,提供定义的参数给函数体里调用