一、裝飾器
裝飾器:裝飾函數和類,作用:擴充增加函數和類的功能
二、裝飾器的分類
兩大類:裝飾器函數和裝飾器類
三、裝飾器函數定義及應用
函數: 封裝代碼最小單元,提供代碼複用性
- 裝飾器函數利用函數的一些特征:
-
- 函數可以用為參數;
- 裝飾器函數可以裝飾所有的函數(有參數,沒參數)
import time
def runTime(func):
"""
裝飾函數
原來功能 + 擴充的功能: 統計每個函數的耗時
:param func:
:return:
"""
def wrapper(*args,**kwargs):
start = time.time()
#原來功能
func(*args, **kwargs)
end = time.time()
cost = end - start
print(f"統計函數使用時長:{func.__name__}耗時{cost}s")
return wrapper
@runTime
def test_no_params():
print("這是一個無參數的裝飾器測試")
@runTime
def test_have_params(*args,**kwargs):
sum = 0
for num in args:
sum += num
print(f"求和: {sum}")
return sum
test_no_params()
test_have_params(2,4,3,5,6,8,9)
三十六般武藝,七十二般變化,修練出個人品牌并發出光芒