]> granicus.if.org Git - python/commitdiff
Describe nested scopes in the tutorial. Closes SF bug 500704.
authorRaymond Hettinger <python@rcn.com>
Wed, 7 Aug 2002 16:09:48 +0000 (16:09 +0000)
committerRaymond Hettinger <python@rcn.com>
Wed, 7 Aug 2002 16:09:48 +0000 (16:09 +0000)
Doc/tut/tut.tex

index 1e5774bff2ea68ed9ee9935a2f714435d8940457..b7a909043de0fa3dfd704c2f4972d52b86de2dc9 100644 (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