Closures/Value capture: Difference between revisions
Content added Content deleted
Line 622: | Line 622: | ||
In this case it is also possible to use <code>map()</code> since the function passed to it creates a new scope |
In this case it is also possible to use <code>map()</code> since the function passed to it creates a new scope |
||
<lang python>funcs = map(lambda i: lambda: i * i, range(10)) |
<lang python>funcs = map(lambda i: lambda: i * i, range(10)) |
||
print funcs[3]() # prints 9</lang> |
|||
It is also possible to use <code>eval</code> and eliminate the double function |
|||
<lang python>funcs=[eval("lambda:%s"%i**2)for i in range(10)] |
|||
print funcs[3]() # prints 9</lang> |
print funcs[3]() # prints 9</lang> |
||