Найти - Пользователи
Полная версия: У python и javascript что-то общее есть (не очевидные нюансы python после с++)?
Начало » Python для новичков » У python и javascript что-то общее есть (не очевидные нюансы python после с++)?
1
Master Niga
Изучаю 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
и получил это, вместо 0,1,2,3,4.

Какие у пайтона есть подобные неожиданности?
sander
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
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB