Timeit Python。它是如何工作的?
我想要测量一个函数的执行时间,打算使用timeit这个库。不过我在网上找不到好的例子。我需要测量的函数是“largest_eigenvector”,它在maxcut库里,这个函数需要一个图G作为输入,而这个图是通过networkx库里的一个函数返回的。
所以我想要测量这段代码的执行时间:
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: local variable 'mc' referenced before assignment(局部变量'mc'在赋值前被引用)
我不知道为什么。请大家帮帮我,这只是个语法问题,我找不到合适的文档来解决这个问题。
2 个回答
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)')
4
你的语句和设置搞错了。把参数传给 Timer() 的顺序调换一下。