On Apr 30, 1:24 pm, "[EMAIL PROTECTED]" <[EMAIL PROTECTED]> wrote: > On Apr 28, 3:37 pm, "Gabriel Genellina" <[EMAIL PROTECTED]> > wrote: > > > > > En Sat, 28 Apr 2007 15:48:11 -0300, [EMAIL PROTECTED] > > <[EMAIL PROTECTED]> escribió: > > > > I have a function in my python like this: > > > def callFunc(line, no): > > > # some code > > > > And I want to do a performance test like this: > > > for line in f: > > > for i in range(int(count)): > > > t1 = timeit.Timer("callFunc(line, i)","from __main__ > > > import callFunc") > > > r1 = t1.timeit(); > > > print r1; > > > > but when I run it, it can't recognize the parameter 'line' and 'i', > > > can you please tell me how to fix it? i get this error: > > > They go in the "setup" parameter, like this: > > > t1 = timeit.Timer("callFunc(line, i)","from __main__ import callFunc; > > line=%r; i=%d" % (line, i)) > > Thanks I try it: > > def stressTest(): > for line in f: > for i in range(int(count)): > print i; > t1 = timeit.Timer("callFunc(line, i)","from __main__ > import callFunc; line=%r; i=%d" % (line, i)) > r1 = t1.timeit(); > times.append(r1); > print r1; > > But it keeps calling callFunc() and it never returns from my loop. The > value of 'count' is 2. > > Thank you. > > > If it gets much longer, try this: > > > setup = """ > > from __main__ import callFunc > > line = %r > > i = %d""" % (line, i) > > stmt = "callFunc(line, i)" > > t1 = timeit.Timer(stmt, setup) > > > -- > > Gabriel Genellina > > > PS: Please leave out the final ; - this is Python, not C nor ... > > PS2: Perhaps the only place where I've used ; is with timeit. And even > > then you can avoid them as in the last example.
I think I solve the problem by putting a number in timeit() function. thank you. -- http://mail.python.org/mailman/listinfo/python-list