summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRaymond Hettinger <python@rcn.com>2002-08-07 16:09:48 (GMT)
committerRaymond Hettinger <python@rcn.com>2002-08-07 16:09:48 (GMT)
commit861bb0244807df6642c19dcc99c54be29c69b0fa (patch)
tree3e42119715245b38efbae759b19772b01e0e7ec9
parent29bf9157ec8840caa74baf99d431394137749186 (diff)
downloadcpython-861bb0244807df6642c19dcc99c54be29c69b0fa.zip
cpython-861bb0244807df6642c19dcc99c54be29c69b0fa.tar.gz
cpython-861bb0244807df6642c19dcc99c54be29c69b0fa.tar.bz2
Describe nested scopes in the tutorial. Closes SF bug 500704.
-rw-r--r--Doc/tut/tut.tex17
1 files changed, 11 insertions, 6 deletions
diff --git a/Doc/tut/tut.tex b/Doc/tut/tut.tex
index 1e5774b..b7a9090 100644
--- a/Doc/tut/tut.tex
+++ b/Doc/tut/tut.tex
@@ -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