John Sahr added the comment:

I eventually figured that out that source of the problem;

thanks for the coding fix; that's useful to know.

-John

On Thu, Aug 11, 2016 at 8:17 AM, Emanuel Barry <rep...@bugs.python.org>
wrote:

>
> Emanuel Barry added the comment:
>
> This is due to the fact that Python evaluates the variable 'n' when the
> function is called, not when it is created. As such, the variable holds the
> latest value for all functions, and they exhibit identical behaviour.
>
> Workaround:
>
> ...
> f = lambda x, n=n: sin(n*x)
> ...
>
> And this should work as you expect. More information is available at
> https://docs.python.org/3/faq/programming.html#why-do-
> lambdas-defined-in-a-loop-with-different-values-all-return-the-same-result
>
> ----------
> nosy: +ebarry
> resolution:  -> not a bug
> stage:  -> resolved
> status: open -> closed
> versions:  -Python 2.7
>
> _______________________________________
> Python tracker <rep...@bugs.python.org>
> <http://bugs.python.org/issue27738>
> _______________________________________
>

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue27738>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to