- .
def mkfun(foo, x):
f = lambda x=x, *y: foo(x, y, f)
return f
for ...:
...mkfun(foo, x)...
, gnibbler, for.
EDIT: . !
def foo(x, y, bar):
print x
if y:
bar()
funs = []
for x in range(5):
bar=lambda x=x, *y: foo(x, y, bar)
funs.append(bar)
funs[2](2, True)
def mkfun(x, foo):
bar = lambda x=x, *y: foo(x, y, bar)
return bar
funs = []
for x in range(5):
funs.append(mkfun(x, foo))
funs[2](2, True)