From: Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> Date: Sun, 21 Apr 2024 01:50:01 +0000 (+0200) Subject: [3.12] Clarifying nonlocal doc: SyntaxError is raised if nearest enclosing scope... X-Git-Tag: v3.12.4~191 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=4d85f0ae76b84bfdba961154e9e38bde27242b9f;p=thirdparty%2FPython%2Fcpython.git [3.12] Clarifying nonlocal doc: SyntaxError is raised if nearest enclosing scope is global (GH-114009) (#118128) Clarifying nonlocal doc: SyntaxError is raised if nearest enclosing scope is global (GH-114009) (cherry picked from commit 1558d993166636f371c1003107ec979db6744f21) Co-authored-by: Quazi Irfan Co-authored-by: Jelle Zijlstra --- diff --git a/Doc/reference/executionmodel.rst b/Doc/reference/executionmodel.rst index cea3a56ba516..ed50faed6c94 100644 --- a/Doc/reference/executionmodel.rst +++ b/Doc/reference/executionmodel.rst @@ -139,8 +139,9 @@ namespace. Names are resolved in the top-level namespace by searching the global namespace, i.e. the namespace of the module containing the code block, and the builtins namespace, the namespace of the module :mod:`builtins`. The global namespace is searched first. If the names are not found there, the -builtins namespace is searched. The :keyword:`!global` statement must precede -all uses of the listed names. +builtins namespace is searched next. If the names are also not found in the +builtins namespace, new variables are created in the global namespace. +The global statement must precede all uses of the listed names. The :keyword:`global` statement has the same scope as a name binding operation in the same block. If the nearest enclosing scope for a free variable contains