Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #57194

IDLE being too clever checking nonlocal declarations?

Date 2013-10-22 02:06 +1100
Subject IDLE being too clever checking nonlocal declarations?
From Chris Angelico <rosuav@gmail.com>
Newsgroups comp.lang.python
Message-ID <mailman.1311.1382367965.18130.python-list@python.org> (permalink)

Show all headers | View raw


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

Back to comp.lang.python | Previous | Next | Find similar | Unroll thread


Thread

IDLE being too clever checking nonlocal declarations? Chris Angelico <rosuav@gmail.com> - 2013-10-22 02:06 +1100

csiph-web