, i . lambda , i :
In [110]: lambdas = [lambda i=i: i for i in range(3)]
In [111]: for lam in lambdas:
.....: print(lam())
.....:
0
1
2
i , Python . - i, . lambda 2, for lambdas.
- , , , , .
def make_func(i):
return lambda: i
lambdas = [make_func(i) for i in range(3)]
for lam in lambdas:
print(lam())
0
1
2
, lam() , i lambda
function body , Python i
make_func. -
, lam, make_func
. - ,
make_func, , , i.
mkrieger1,
functools.partial:
lambdas = [functools.partial(lambda x: x, i) for i in range(3)]