Terry J. Reedy <tjre...@udel.edu> added the comment:

Another problem with the current text is that it fails to exclude enclosing 
class scopes, and I had to test to be sure they were., and some of the phrasing 
strikes me as awkward. Here is a possible rewrite.
"When the definition of a function is nested (enclosed) within the definitions 
of other functions, its nonlocal scopes are the local scopes of the enclosing 
functions. The nonlocal statement causes the listed identifiers to refer to 
names previously bound in nonlocal scopes. If a name is bound in more than one 
nonlocal scope, the nearest binding is used. If a name is not bound in any 
nonlocal scope, or if there is no nonlocal scope, a SyntaxError is raised.

Except for the requirement that the listed indentifiers be previously bound, 
the nonlocal statement is similar to the global statement. It applies to the 
entire function body, so it cannot follow any local bindings of the same names."

My main change is to first unambiguously define nonlocal scopes and continue 
from there.

----------
keywords: +patch
nosy: +terry.reedy

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue12165>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to