[Python-ideas] For-loop variable scope: simultaneous possession and ingestion of cake
Dillon Collins
dillonco at comcast.net
Tue Oct 14 13:25:11 CEST 2008
On Tuesday 14 October 2008, Arnaud Delobelle wrote:
> On 14 Oct 2008, at 05:03, Dillon Collins wrote:
> > On Monday 13 October 2008, Arnaud Delobelle wrote:
> >> It's inefficient because it works by deconstructing and
> >> reconstructing
> >> the function bytecode.
> >
> > That's not necessary. Just make a new closure for it. Here's some
> > code (I
> > was bored/curious). The function reclose_kwds is provided for
> > fun. Enjoy:
>
> But that doesn't work with global variables, does it? Globals are the
> reason why I had to scan the bytecode
Nope. However, I expect that globals would be even easier. If you want to
freeze all the variables, you can just replace func_globals with
func_globals.copy(). Otherwise, you can replace it with some proxy object
that would read from your dict and fall back to the real globals if
necessary. (Probably subclass dict with the __missing__ method.)
Or at least I think that would work. I don't have time to try it now...
More information about the Python-ideas
mailing list