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

Reply via email to