1. 程式人生 > >Python時間函式

Python時間函式

在用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)