On 11/12/2010 3:08 PM, Hatem Nassrat wrote:
A colleague of mine came across something anecdotal when working with
lambdas, it is expressed by the following code snippet.
In [1]: def a():
...: for i in range(10):
...: def b():
...: return i
...: yield b
...:
...:
In [2]: funcs = list(a())
In [3]: print [f() for f in funcs]
[9, 9, 9, 9, 9, 9, 9, 9, 9, 9]
I understand that for loops in python do not have a scope, neither do
if statements, and python is awesome for that. Is this something
accidental? i.e. will python ever evolve into having scopes for if and
for loops (and other blocks that are not functions)? the reason I ask
is with the introduction of
http://docs.python.org/py3k/reference/simple_stmts.html#nonlocal it
seems like something that can happen.
Question/discussion issues like this belong on python-list or
python-ideas list.
--
Terry Jan Reedy
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe:
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com