裝飾遞歸函數
阿新 • • 發佈:2018-05-04
def get 結束時間 pytho __name__ pan als 為什麽 UNC
裝飾遞歸函數:
簡潔版:
import time
def GetRunFunc(func):
Call = True
if Call:
def Call_Func(*args, **kwargs):
Call = False
start_time = time.time()
ret = func(*args, **kwargs)
end_time = time.time()
Run_time = end_time - start_time
print (str(func.__name__) + "函數的運行時間為:" + str(Run_time) + "秒")
return ret
return Call_Func
註釋版:
import time
def GetRunFunc(func):
Call = True
if Call:
# if Call: 此判斷語句是針對裝飾遞歸函數的情況, 如果裝飾過此函數後, 就不再裝飾
def Call_Func(*args, **kwargs):
Call = False
start_time = time.time()
# 開始時間
ret = func(*args, **kwargs)
# 調用被裝飾的函數, func(*args, **kwargs), 調用函數為什麽用func內, 裝時器的特性, 將被裝飾的函數的名字當作參數傳遞進來進行裝飾
end_time = time.time()
# 結束時間
Run_time = end_time - start_time
# 運行時間 = 結束時間 - 開始時間
print(str(func.__name__) + "函數的運行時間為:" + str(Run_time) + "秒")
return ret
# 將被裝飾的函數的返回
return Call_Func
# 返回函數的引用
裝飾遞歸函數