Callback scoping

Dan thermostat at
Thu Jul 5 21:14:07 CEST 2007

So, I think I understand what python's scoping is doing in the
following situation:
>>> x = [ lambda: ind for ind in range(10) ]
>>> x
[<function <lambda> at 0x00BEC070>, <function <lambda> at 0x00BEC7F0>,
<function <lambda> at 0x00BECA70>, <function <lambda> at 0x00C1EBF0>,
<function <lambda> at 0x00C1EE30>, <function <lambda> at 0x00C228F0>,
<function <lambda> at 0x00C228B0>, <function <lambda> at 0x00C28730>,
<function <lambda> at 0x00C286F0>, <function <lambda> at 0x00C287F0>]
>>> x[0]()
>>> x[5]()
>>> x[9]()
>>> ind
>>> ind = 2
>>> x[0]()

But, I'm wondering what is the easiest (and/or most pythonic) way to
get the behavior I want? (If you haven't guessed, I want a list of (no
parameter) functions, each of which returns its index in the list.)


More information about the Python-list mailing list