[Python-Dev] 2.5 and beyond (original) (raw)

Phillip J. Eby pje at telecommunity.com
Sun Jul 2 16:07:57 CEST 2006


At 01:58 PM 7/2/2006 +0200, jan-python at maka.demon.nl wrote:

I believe the problem has nothing to do with how many scopes a block/function definition has, but with what the lambda does with the scope it's given. Currently it remembers the block and looks up the nescessary variables in it when it's invoked. I think it shoud should have just taken the values of the needed variables and rememberd those as it's own local variables. So the closed over variables become just local variables initialised to the value they have in the outer scope.

That won't work. Consider this code, that's perfectly valid Python today:

def foo():
    def bar():
        print x
    for x in range(10):
        bar()


More information about the Python-Dev mailing list