[3.13] gh-137376: Add note on top-level global declarations (GH-137707) (#138022)

(cherry picked from commit 9f05f98730)

Co-authored-by: Petr Viktorin <encukou@gmail.com>
Co-authored-by: Brian Schubert <brianm.schubert@gmail.com>
This commit is contained in:
Miss Islington (bot) 2025-09-18 14:02:17 +02:00 committed by GitHub
parent df349036b3
commit 2d24b13d03
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -972,10 +972,17 @@ as globals. It would be impossible to assign to a global variable without
:keyword:`!global`, although free variables may refer to globals without being
declared global.
The :keyword:`global` statement applies to the entire scope of a function or
class body. A :exc:`SyntaxError` is raised if a variable is used or
The :keyword:`!global` statement applies to the entire current scope
(module, function body or class definition).
A :exc:`SyntaxError` is raised if a variable is used or
assigned to prior to its global declaration in the scope.
At the module level, all variables are global, so a :keyword:`!global`
statement has no effect.
However, variables must still not be used or
assigned to prior to their :keyword:`!global` declaration.
This requirement is relaxed in the interactive prompt (:term:`REPL`).
.. index::
pair: built-in function; exec
pair: built-in function; eval