# 装饰器的本质: 闭包函数
# 功能: 就是在不改变原函数调用方式的情况下,在这个函数前后加上扩张功能
def timemer(func):
def inner(*args,**kwargs):
'''添加函数调用之前的扩展代码'''
ret = func(*args,**kwargs)
'''添加函数调用之后的扩展代码'''
return ret
return inner
# 设计模式 原则 开放封闭原则
# 对扩展是开放的
# 对修改是封闭的
import time
def wrapper(func): #装饰
def inner(*args,**kwargs):
start = time.time()
ret = func(*args,**kwargs)
end = time.time()
print(end - start)
return ret
return inner
@wrapper #语法糖
def lll():
time.sleep(0.1)
print('hello')
lll()
---
hello
0.10107421875