2010-07-26 53 views
0

嗨! 我想獲得我的功能(測試(G))的時間執行。當我使用定時器I 時,我需要寫出我的對象類型:「test(%??)」%G 這是DiGraph這裏。我怎樣才能做到這一點?迭代時出現TypeError DiGraph()

from networkx import nx 

def test(G): 
    for e in G.edges_iter(): 
     print(e) 

if __name__=='__main__': 
    from timeit import Timer 
    G = nx.DiGraph() 
    G.add_edges_from([(1,2),(4,5)]) 
    t = Timer("test(% ??)"%G,"from __main__ import test") 
    print(t.timeit(1)) 

回答

1

您應該__main__進口G以及

import networkx as nx 

def test(G): 
    for e in G.edges_iter(): 
     print(e) 

if __name__=='__main__': 
    from timeit import Timer 
    G = nx.DiGraph() 
    G.add_edges_from([(1,2),(4,5)]) 
    t = Timer("test(G)","from __main__ import test,G") 
    print(t.timeit(1)) 

注意,我固定import語句也。

+0

謝謝!這很奇怪,因爲我還必須修復導入語句才能使其工作。但是,「從networkx import nx」和「import networkx as nx」之間有什麼區別? – masti 2010-07-26 13:52:26

+0

'from networkx import nx'表示模塊'networkx'應該包含函數'nx'。但是你不想要那個,你想調用模塊_itself_'nx'。 – katrielalex 2010-07-26 14:26:16

相關問題