On Sat, 29 Mar 2008 21:12:33 -0300, Gabriel Genellina wrote:

> Or maybe:
> 
> def main():
>    global func
>    func = factory()
>    return timeit.Timer('func()', 'from __main__ import func').timeit()

Alas, this does not work, because all the Timer instances share the same 
state.



import timeit, time

def test_timer(func1, func2):
    global gFUNC
    gFUNC = func1
    T1 = timeit.Timer('gFUNC()', 'from __main__ import gFUNC')
    gFUNC = func2
    T2 = timeit.Timer('gFUNC()', 'from __main__ import gFUNC')
    print "Calling %s" % func1.__name__
    T1.repeat(3, 1)
    print "Calling %s" % func2.__name__
    T2.repeat(3, 1)

def functionA():
    print "Function A"

def functionB():
    print "Function B"



And here's the results:

>>> test_timer(functionA, functionB)
Calling functionA
Function B
Function B
Function B
Calling functionB
Function B
Function B
Function B



-- 
Steven
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to