Python裝飾器
什麼是裝飾器
- Python中一切皆對象,函數也可以當做參數傳遞
- 裝飾器接受函數當做參數,添加功能後返回一個新函數的函數
- Python中裝飾器使用@
import time
def log_time(func):
def log(*args, **kwargs):
begin = time.time()
res = func(*args, **kwargs)
print(time.time()-begin)
return res
return log
# 第一種調用形式
@log_time
def my_time():
time.sleep(1)
my_time()
def my_time_two():
time.sleep(2)
# 第二種調用形式
new_fuc = log_time(my_time_two)
new_fuc()