# 裝飾器的本質: 閉包函數
# 功能: 就是在不改變原函數調用方式的情況下,在這個函數前後加上擴張功能
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