Python時間函式
阿新 • • 發佈:2018-12-08
在用Python編寫程式時經常會遇到需要求解一個函式執行時間的情況,在做CS231n作業的時候,發現一個利用Python語言特性編寫的比較巧妙的計算方法,這裡記錄和大家分享一下:
def time_function(f, *args):
"""
Call a function f with args and return the time (in seconds) that
it took to execute.
"""
import time
tic = time.time()
f(*args)
toc = time.time()
return toc - tic
程式碼如上,只有幾行,當實現了很好的封裝和可用性。這裡主要是用了Python中的可變引數和函式特性(函式名其實就是指向一個函式物件的引用,完全可以把函式名賦給一個變數,相當於給這個函式起了一個“別名”:)。
f是一個指向函式物件的引用別名;*args表示任何多個無名引數,它是一個tuple。
應用如下:
def time_function(f, *args):
"""
Call a function f with args and return the time (in seconds) that
it took to execute.
"""
import time
tic = time.time()
f(*args)
toc = time.time()
return toc - tic
def addition(a, b, c):
return a + b + c
def subtract(a, b):
return a - b
add_time_cost = time_function(addition, 3, 4, 5)
sub_time_cost = time_function(subtract, 3, 4)
print('add_time_cost:', add_time_cost)
print('sub_time_cost:' , sub_time_cost)