定义:装饰器本质上就是一个python函数,他可以让其他函数在不需要做任何代码变动的前提下,增加额外的功能,装饰器的返回值也是一个函数对象。
应用场景:比如插入日志、性能测试、事务处理、缓存、权限校验等场景。
一、装饰器的形成过程
1、自定义装饰器
#简单装饰器
import time
def timmer(f):
def inner():
start_time = time.time()
time.sleep(0.1)
f()
end_time = time.time()
print('----> 执行效率:%s' %(end_time - start_time))
return inner
#需要引用装饰器的函数
def func():
print('嘻嘻更健康')
#引用装饰器
func = timmer(func) #inner
func() #inner()
#输出结果
嘻嘻更健康
----> 执行效率:0.10022902488708496
2、装饰器的语法糖
#装饰的语法糖@
def timmer(f): #装饰器
def inner():
f()
return inner
@timmer #@timmer 相当于 func = timmer(func)
def func(): #要引用装器的函数
print('嘻嘻更健康')