Chris Angelico wrote: > 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?
Yes, but you should still file a bug report ;) > Tested with 3.3.0 on Windows XP. Confirmed on Linux for 3.2.2, 3.3.0, and an outdated built of 3.4. It looks like all versions of Python 3 are affected. -- https://mail.python.org/mailman/listinfo/python-list