Возможный дубликат:
Что делает захват функции лямбда-функции в Python?
лямбда-функция не закрывает параметр в Python?
Я пытаюсь создать lambdas внутри цикла, который выполняет итерацию над списком объектов:
lambdas_list = []
for obj in obj_list:
lambdas_list.append(lambda : obj.some_var)
Теперь, если я перебираю список lambdas и вызываю их следующим образом:
for f in lambdas_list:
print f()
Я получаю то же значение. Это значение последнего obj
в obj_list
, так как это была последняя переменная в блоке итератора списка. Любые идеи fn хорошего (питонова) переписывают код, чтобы заставить его работать?