J'essaie de savoir combien de temps il faut pour exécuter une instruction Python, alors j'ai regardé en ligne et j'ai trouvé que la bibliothèque standard fournit un module appelé timeit qui prétend faire exactement cela:
import timeit
def foo():
# ... contains code I want to time ...
def dotime():
t = timeit.Timer("foo()")
time = t.timeit(1)
print "took %fs\n" % (time,)
dotime()
Cependant, cela produit une erreur:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 3, in dotime
File "/usr/local/lib/python2.6/timeit.py", line 193, in timeit
timing = self.inner(it, self.timer)
File "<timeit-src>", line 6, in inner
NameError: global name 'foo' is not defined
Je suis encore nouveau dans Python et je ne comprends pas parfaitement tous les problèmes de portée qu'il a, mais je ne sais pas pourquoi cet extrait de code ne fonctionne pas. Des pensées?