This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author David Goffredo
Recipients David Goffredo
Date 2016-03-17.05:52:46
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1458193966.9.0.501665269138.issue26575@psf.upfronthosting.co.za>
In-reply-to
Content
A series of lambdas referring to a variable in a comprehension do not hold distinct values, while conventional higher order function do.

PS C:\Users\David\Desktop> python
Python 3.5.1 (v3.5.1:37a07cee5969, Dec  6 2015, 01:54:25) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> class Caller:
...     def __init__(self, f):
...         self._f = f
...     def start(self):
...         print(self._f())
...
>>> def asFunc(boundValue):
...     def func():
...         return boundValue
...     return func
...
>>> for caller in [Caller(asFunc(x)) for x in range(5)]:
...     caller.start()
...
0
1
2
3
4
>>> for caller in [Caller(lambda: x) for x in range(5)]:
...     caller.start()
...
4
4
4
4
4
>>>
History
Date User Action Args
2016-03-17 05:52:46David Goffredosetrecipients: + David Goffredo
2016-03-17 05:52:46David Goffredosetmessageid: <1458193966.9.0.501665269138.issue26575@psf.upfronthosting.co.za>
2016-03-17 05:52:46David Goffredolinkissue26575 messages
2016-03-17 05:52:46David Goffredocreate