Правильно ли я понял, что лажа была в том, что лямбды считаются лениво после цикла?
Но вот здесь же я обращаюсь принтом в цикле к массиву и нахожу в нем одни лямбды, а потом возвращается массив с совсем другими лямбдами. Я не понимаю, как пример ниже ложится в эту логику.
>>> def gen(a,b): lst = [] for i in xrange(a,b+1): lst.append(lambda x: x+i) print lst[i-a](1) #Каждый раз - разные лямбды return lst >>> l = gen(0,2) 1 2 3 >>> l >>> l[0](1) #Снова полон массив одинаковых лямбд 3
