python-修饰器
装饰器:本质就是函数,功能是为其他函数添加附加功能。
原则:
1)不修改被修饰函数的源代码
2)不修改被修饰函数的调用方式
装饰器=高阶函数+嵌套函数+闭包
高阶函数:
1)函数接收的参数是一函数名
2)函数的返回值是一函数名
3)满足上述任一,都可称之为高阶函数
装饰器框架:
def timmer(func):
def wrapper():
start_time=time.time()
print(func)
func()
end_time=time.time()
print("运行时间是:%s" %(end_time-start_time))
return wrapper
def test():
time.sleep(3)
print("test函数运行完毕")
res = timmer(test) #返回的是wrapper的地址
res() #执行的是wrapper()
修饰器使用:
@timmer #test=timmer(test)
test()