Message261885
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
>>> |
|
Date |
User |
Action |
Args |
2016-03-17 05:52:46 | David Goffredo | set | recipients:
+ David Goffredo |
2016-03-17 05:52:46 | David Goffredo | set | messageid: <1458193966.9.0.501665269138.issue26575@psf.upfronthosting.co.za> |
2016-03-17 05:52:46 | David Goffredo | link | issue26575 messages |
2016-03-17 05:52:46 | David Goffredo | create | |
|