lambda forms within a loop

Lawrence D'Oliveiro ldo at geek-central.gen.new_zealand
Sun Oct 25 00:34:11 EDT 2009


In message <mailman.1990.1256441598.2807.python-list at python.org>, Michal 
Ostrowski wrote:

> def MakeLambdaBad():
>   a = []
>   for x in [1,2]:
>      a.append(lambda q:  x + q)
>   return a

Here's another form that should work:

    def MakeLambdaGood2() :
        a = []
        for x in [1, 2] :
            a.append((lambda x : lambda q : x + q)(x))
        return a

It's all a question of scope.



More information about the Python-list mailing list