Анонимные функции, ссылающиеся на локальные переменные в python

Как я могу определить анонимные функции в python, где поведение должно зависеть от значения локальной переменной во время определения, а также принимать аргументы

Пример:

def callback(val1, val2):
   print "{0} {1}".format(val1, val2)

i = 0
f0 = lambda x: callback(i, x)
i = 1
f1 = lambda x: callback(i, x)

f0(8) # prints "1, 8: but I'd like "0, 8" (value of 'i' when f0 was defined)
f1(8) # prints "1, 8"

Возможно ли что-то подобное, не заключая мой обратный вызов в собственный класс?

7
задан ajwood 27 March 2012 в 13:28
поделиться