timeit

Robert Brewer fumanchu at amor.org
Sat Jan 31 01:44:42 EST 2004


Duncan Smith wrote:
> >>> import SDC_table
> >>> import subtract
> >>> import timeit
> >>> t = SDC_table.RandomTable(1, 12, (2,3,4))
> >>> s = """\
> p = subtract.p_risk(t.values, 10)
> """
> >>> tim = timeit.Timer(stmt=s)
> >>> tim.timeit(10)
> 
> Traceback (most recent call last):
>   File "<pyshell#119>", line 1, in -toplevel-
>     tim.timeit(10)
>   File "C:\Python23\lib\timeit.py", line 158, in timeit
>     return self.inner(it, self.timer)
>   File "<timeit-src>", line 6, in inner
> NameError: global name 'subtract' is not defined
> 
> # yet
> >>> exec(s)
> >>> p
> 0.242621453769059

I believe you need to put *any* initialization code (like "import
subtract") into the "setup" parameter to Timer(). So try something like:

> >>> import timeit
> >>> s = """p = subtract.p_risk(t.values, 10)"""
> >>> tim = timeit.Timer(stmt=s, setup="import SDC_table, subtract; t =
SDC_table.RandomTable(1, 12, (2,3,4))")
> >>> tim.timeit(10)


HTH

Robert Brewer
MIS
Amor Ministries
fumanchu at amor.org




More information about the Python-list mailing list