Ниже приведен пример, который я получил из чьего-то блога о закрытии Python. Я запускаю его в python 2.7 и получаю результат, отличный от ожидаемого.
flist = []
for i in xrange(3):
def func(x):
return x*i
flist.append(func)
for f in flist:
print f(2)
Мой ожидаемый результат: :0, 2, 4
Но на выходе :4, 4, 4
Есть ли кто-нибудь, кто может помочь объяснить это?
Заранее спасибо.