One way :

>>> from functools import partial
>>> def func(item) : print item

>>> llist = [partial(func,item) for item in range(5)]
>>> for thing in llist : thing()

0
1
2
3
4


wyleu wrote:
I'm trying to supply parameters to a function that is called at a
later time as in the code below:

llist = []

for item in range(5):
    llist.append(lambda: func(item))

def func(item):
    print item

for thing in llist:
    thing()

which produces the result

IDLE 1.2.1
================================ RESTART ================================

<function <lambda> at 0xb716356c>
<function <lambda> at 0xb71635a4>
<function <lambda> at 0xb71635dc>
<function <lambda> at 0xb7163614>
<function <lambda> at 0xb716364c>
================================ RESTART ================================

4
4
4
4
4

How can one allocate a different parameter to each instance of the
function rather than all of them getting the final value of the loop?

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to