2011-11-02 4 views
1

나는 시간 함수에 싶고 timeit 라이브러리를 사용하고 싶다. 나는 그물에 좋은 모범을 찾을 수 없다. maxcut 라이브러리에있는 함수 "largest_eigenvector"의 시간을 측정해야하는데,이 함수는 networkx 라이브러리의 함수에 의해 반환되는 그래프 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()에 인수를 다른 방향으로 전달합니다.

관련 문제