我想对一个函数计时,并且我想使用timeit库。我在网上找不到任何好的例子。我必须对maxcut库中的函数"largest_eigenvector“进行计时,该函数将由networkx库中的函数返回的图G作为输入。
所以我想给这段代码计时:
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‘
我也不知道原因。请帮帮忙,这只是一个语法问题,我找不到一个合适的文档来解决这个问题。
发布于 2011-11-02 18:43:14
您已经交换了语句和设置。反过来将参数传递给Timer()。
发布于 2011-11-02 18:36:12
试试这个:
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)')https://stackoverflow.com/questions/7978892
复制相似问题