[]
ls.append(lambda x: x + 1)
ls.append(lambda x: ls[0](x) + 1)
ls.append(lambda x: ls[1](x) + 1)
ls.append(lambda x: ls[2](x) + 1)
ls.append(lambda x: ls[3](x) + 1)
ls.append(lambda x: ls[4](x) + 1)
ls.append(lambda x: ls[5](x) + 1)
ls.append(lambda x: ls[6](x) + 1)
ls.append(lambda x: ls[7](x) + 1)
ls.append(lambda x: ls[8](x) + 1)
ls.append(lambda x: ls[9](x) + 1)
return ls[10](0)
def test2():
ls = []
ls.append(lambda x: x + 1)
n = 10
for i in range(n):
print(i)
ls.append(lambda x: ls[i](x) + 1)
return ls[n](0)
print('test1 ', test1())
print('test2 ', test2())
победить?)
Что тут происходит вообще и зачем это?
Ctrl+A, Del
А вывод какой?
Твоя лямбда обращается к переменной i только во время исполнения, которая постоянно и во всех лямбдах будет равна последнему значению, вытащенного из range
Обсуждают сегодня