[docs] [issue26205] Inconsistency concerning nested scopes
Terry J. Reedy
report at bugs.python.org
Fri Jan 29 20:39:41 EST 2016
Terry J. Reedy added the comment:
Would 'three or more' be any clearer than 'at least three'? They mean the same, but the first seems better to me in this context.
The real problem with this section are a) the use of Guido's first person 'I' and b) statements that were not changed when nested scope were added, but should have been.
"If a name is declared global, then all references and assignments go directly to the middle scope containing the module’s global names."
The global scope is no longer the middle scope. Roscoe pointed at this. With that removed, the sentence says that if a name is declared global, assignments go to global scope. This would be more meaningful if prefixed by a revised version of the following, which is several paragraphs down.
"A special quirk of Python is that – if no global statement is in effect – assignments to names always go into the innermost scope."
The special quirk part should go; 'global' would now have to be 'global or nonlocal', but I now think the following, preceeding the revised 'global' sentence above, would be better.
"By default, assignments to names always go into the innermost, local, namespace."
In other words, I think the sentence Roscoe flagged is the least of the problems with this section.
Python tracker <report at bugs.python.org>
More information about the docs