From: Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> Date: Thu, 23 Jan 2020 18:15:15 +0000 (-0800) Subject: bpo-39431: Also mention nonlocal in assignment quirk (GH-17375) X-Git-Tag: v3.7.7rc1~73 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=0c12d70bfdedf85c62e1c2b8c55ef4e84e6ee461;p=thirdparty%2FPython%2Fcpython.git bpo-39431: Also mention nonlocal in assignment quirk (GH-17375) (cherry picked from commit 7142df5ea23b4ce0efb72746b4b3b65414e8dcb1) Co-authored-by: Shanavas M --- diff --git a/Doc/tutorial/classes.rst b/Doc/tutorial/classes.rst index 2538c3106187..5160145f4fba 100644 --- a/Doc/tutorial/classes.rst +++ b/Doc/tutorial/classes.rst @@ -143,10 +143,10 @@ language definition is evolving towards static name resolution, at "compile" time, so don't rely on dynamic name resolution! (In fact, local variables are already determined statically.) -A special quirk of Python is that -- if no :keyword:`global` statement is in -effect -- assignments to names always go into the innermost scope. Assignments -do not copy data --- they just bind names to objects. The same is true for -deletions: the statement ``del x`` removes the binding of ``x`` from the +A special quirk of Python is that -- if no :keyword:`global` or :keyword:`nonlocal` +statement is in effect -- assignments to names always go into the innermost scope. +Assignments do not copy data --- they just bind names to objects. The same is true +for deletions: the statement ``del x`` removes the binding of ``x`` from the namespace referenced by the local scope. In fact, all operations that introduce new names use the local scope: in particular, :keyword:`import` statements and function definitions bind the module or function name in the local scope.