On Sun, 30 Mar 2008 00:27:45 -0300, Gabriel Genellina wrote: > En Sat, 29 Mar 2008 23:23:07 -0300, Steven D'Aprano > <[EMAIL PROTECTED]> escribió: > >> The general problem is that I wish to time an arbitrary function with >> arbitrary arguments. The function and arguments are provided to me as >> Python objects, but timeit requires strings. Converting the objects to >> strings is not practical, and the objects might not exist in the >> __main__ module. > > Ah, ok, I understand now. I think this is more-or-less what you want:
[snip] No, sorry, it's still sharing state. from timeit import Timer # Slight modification to the function to return the Timer object. def timeanyfunc(fn, *args, **kw): global wrapped_fn def wrapped_fn(): return fn(*args, **kw) return Timer("wrapped_fn()", "from %s import wrapped_fn" % __name__) def functionA(): print "Function A" def functionB(): print "Function B" T1 = timeanyfunc(functionA) T2 = timeanyfunc(functionB) T1.repeat(3, 1) # Should print "Function A". T2.repeat(3, 1) # Should print "Function B". -- Steven -- http://mail.python.org/mailman/listinfo/python-list