[Python-Dev] nonlocal x = value (original) (raw)

Stefan Behnel stefan_ml at behnel.de
Fri Dec 17 08:19:07 CET 2010


Hi,

it seems that Py3 doesn't support setting a "nonlocal" value as part of the "nonlocal" command

 Python 3.2a4+ (py3k:86480, Nov 16 2010, 16:43:22)
 [GCC 4.4.3] on linux2
 Type "help", "copyright", "credits" or "license" for more information.
 >>> def x():
 ...   y = 5
 ...   def f():
 ...     nonlocal y = 6
   File "<stdin>", line 4
     nonlocal y = 6
                ^
 SyntaxError: invalid syntax

even though the PEP clearly describes this feature.

http://www.python.org/dev/peps/pep-3104/#proposed-solution

Either the PEP or the implementation should be updated. Personally, I think the PEP should be changed as I think that the syntax complicates the grammar more than it's worth. Also, the moratorium applies here, given that Py3.1 does not implement this.

Comments?

Stefan



More information about the Python-Dev mailing list