phd_ru: (0)
phd_ru ([personal profile] phd_ru) wrote in [personal profile] beldmit 2010-01-05 01:06 pm (UTC)

Ты вот это имеешь ввиду?
i = 0
f = lambda: i
i = 1
print f()
Это не цикл и не передача по ссылке, это closure. При создании lambda (или def, между ними нет разницы) запоминает ссылку на окружающее пространство имён, в котором есть ссылка на переменную i. Даже если ссылка i потом изменится, lambda-то помнит не i, а то пространство имён, в котором определена i, ну и lambda найдёт в этом запомненном пространстве имён новое значение i.

Post a comment in response:

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting