Try typing this into IDLE:
>>> def a():
def b():
nonlocal q
SyntaxError: no binding for nonlocal 'q' found
In interactive command-line Python, this doesn't throw an error, and
it works fine if the name is used later:
>>> def a():
def b():
nonlocal q
q+=1
q=1
b()
return q
>>> a()
2
But typing this into IDLE interactive mode requires some fiddling
around with the editor. Is it trying to be too clever? Am I doing
something that makes no sense?
Tested with 3.3.0 on Windows XP.
ChrisA
--
https://mail.python.org/mailman/listinfo/python-list