2011-11-02 66 views
1

我想要一個函數,我想使用timeit庫。我在網上找不到任何好的例子。我必須使用maxcut庫中的函數「largest_eigenvector」,該函數將網絡x庫中函數返回的圖G作爲輸入。Timeit Python。它是如何工作的?

所以我想時間代碼塊:

import maxcut as mc 
import networkx as nx 
G = nx.complete_graph(3) 

mc.largest_eigenvector(G) 

顯然,它工作正常。比一次我這樣做:

s = """ 
    import maxcut as mc 
    import networkx as nx 
    G = nx.complete_graph(3) 
    """ 
t = timeit.Timer(s, 'mc.largest_eigenvector(G)') 

但它說: UnboundLocalError:分配

之前引用局部變量「MC」我不知道爲什麼。請有人幫助它只是一個語法問題,我找不到一個體面的文檔。

回答

2

試試這個:

def tmp(): 
    import maxcut as mc 
    import networkx as nx 
    G = nx.complete_graph(3) 
    mc.largest_eigenvector(G) 

t = timeit.Timer(s, 'tmp()') 

以下可能的工作,太:

t = timeit.Timer(setup=s, stmt='mc.largest_eigenvector(G)') 
+0

它工作正常,您的解決方案謝謝.. :)但是,有沒有更優雅的方式來做到這一點? – blueSurfer

3

你有陳述和設置交換。反過來將參數傳遞給Timer()。

相關問題