Lambda evaluation

Fredrik Lundh fredrik at pythonware.com
Thu Oct 6 16:39:46 EDT 2005


Joshua Ginsberg wrote:

> So this part makes total sense to me:
>
> >>> d = {}
> >>> for x in [1,2,3]:
> ...     d[x] = lambda y: y*x
> ...
> >>> d[1](3)
> 9
>
> Because x in the lambda definition isn't evaluated until the lambda is
> executed, at which point x is 3.
>
> Is there a way to specifically hard code into that lambda definition the
> contemporary value of an external variable? In other words, is there a
> way to rewrite the line "d[x] = lambda y: y*x" so that it is always the
> case that d[1](3) = 3?

from earlier today:

    http://article.gmane.org/gmane.comp.python.general/424262

</F>






More information about the Python-list mailing list