Describe nested scopes in the tutorial. Closes SF bug 500704.

This commit is contained in:
Raymond Hettinger 2002-08-07 16:09:48 +00:00
parent 29bf9157ec
commit 861bb02448
1 changed files with 11 additions and 6 deletions

View File

@ -3551,12 +3551,17 @@ that an unqualified reference to a name attempts to find the name in
the namespace.
Although scopes are determined statically, they are used dynamically.
At any time during execution, exactly three nested scopes are in use
(exactly three namespaces are directly accessible): the
innermost scope, which is searched first, contains the local names,
the middle scope, searched next, contains the current module's global
names, and the outermost scope (searched last) is the namespace
containing built-in names.
At any time during execution, there are at least three nested scopes whose
namespaces are directly accessible: the innermost scope, which is searched
first, contains the local names; the namespaces of any enclosing code
blocks (a module, function, or class definition) which are searched starting
with the nearest enclosing scope; the middle scope, searched next, contains
the current module's global names; and the outermost scope (searched last)
is the namespace containing built-in names.
If a name is declared global, then all references and assignments go
directly to the middle scope containing the module's global names.
Otherwise, all variables found outside of the innermost scope are read-only.
Usually, the local scope references the local names of the (textually)
current function. Outside of functions, the local scope references