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
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
> <http://bugs.python.org/issue27738>
> ___
>
--
___
Python tracker
<http://bugs.python.org/issue27738>
___
___
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com