[Python-Dev] Comparing closures and arguments (was Re: Scoping vs augmented assignment vs sets (Re: 'fast locals' in Python 2.5)

Phillip J. Eby pje at telecommunity.com
Wed Jun 14 22:01:33 CEST 2006

At 01:00 PM 6/14/2006 -0700, Josiah Carlson wrote:
> > That claim isn't necessarily supported by your benchmark, which includes
> > the time to *define* the nested function 10 times, but calls it only 45
> > times!  Try comparing fcn1(1000) and fcn2(1000) - I suspect the results
> > will be somewhat closer, but probably still in favor of fcn1.
>Please re-read the code and test as I have specified.  You seem to have
>misunderstood something in there, as in the example I provide, _helper
>is called 1,000,000 times (and is defined only once for each call of
>fcn2) during each fcn1 or fcn2 call, and _helper is only defined once
>inside of fcn2.

Oops.  I misread "[fcn2(x) for i in xrange(10)]" as "[fcn2(x) for x in 
xrange(10)]".  The latter is so much more common of a pattern that I guess 
I didn't even *look* at what the loop variable was.  Weird.  I guess the 
mind is a terrible thing.  :)

More information about the Python-Dev mailing list