How to use time.clock() function in python
Steven D'Aprano
steve at REMOVEME.cybersource.com.au
Mon Jan 22 19:18:44 EST 2007
On Mon, 22 Jan 2007 15:32:58 -0800, samuel.y.l.cheung wrote:
> File "/usr/lib/python2.4/timeit.py", line 188, in repeat
> t = self.timeit(number)
> File "/usr/lib/python2.4/timeit.py", line 161, in timeit
> timing = self.inner(it, self.timer)
> File "<timeit-src>", line 6, in inner
> NameError: global name 'func1' is not defined
>
> I don't understand why i can't find 'func1', when I call the function
> 'func1' directly, it works.
> but why when I call it within 'timeit', it can't find it?
Because the code in timeit is running in a different namespace. You have
to import your function first. That's what the setup parameter is used for.
Here's the hard way:
t = timeit.Timer("func1()", """def func1():
#do something here
return result
""")
Here's the easy way:
t = timeit.Timer("func1()", "from __main__ import func1")
--
Steven D'Aprano
More information about the Python-list
mailing list