Форум сайта python.su
0
Изучаю js. Где-то встретил упоминание, что python похож на js в чем-то, не помню в чём. Может, в “поднятии”, может в scope и лексическом окружении - не помню. Но после с++ момент с тем же scope в js был совсем не очевиден -я накололся, когда в цикле вызвал функцию:
var myAlerts= []; for(var i = 0: i < 5; i++) myAlerts.push( function inner() { alert(i); } ) myAlerts[0](); //5 myAlerts[1](); //5 myAlerts[2](); //5 myAlerts[3](); //5 myAlerts[4](); //5
Офлайн
53
Master Niga
такое можно получить если сделать
>>> res = [] >>> for i in range(4): ... res.append(lambda: i**2) >>> res[0]() 9 >>> res[1]() 9
>>> for i in range(4): ... res.append(lambda x=i: x**2) ... >>> res[0]() 0 >>> res[1]() 1
Отредактировано sander (Май 22, 2015 15:38:34)
Офлайн