gh-137337: Clarify import statement namespace binding (GH-144607)

It is not always in the local namespace.
This commit is contained in:
Kit Dallege 2026-05-04 16:45:00 +02:00 committed by GitHub
parent 1e21cf6fee
commit b8ebd078f9
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -761,8 +761,9 @@ The basic import statement (no :keyword:`from` clause) is executed in two
steps:
#. find a module, loading and initializing it if necessary
#. define a name or names in the local namespace for the scope where
the :keyword:`import` statement occurs.
#. define a name or names in the current namespace for the scope where
the :keyword:`import` statement occurs, just as an assignment statement
would (including :keyword:`global` and :keyword:`nonlocal` semantics).
When the statement contains multiple clauses (separated by
commas) the two steps are carried out separately for each clause, just
@ -807,7 +808,7 @@ The :keyword:`from` form uses a slightly more complex process:
#. if not, attempt to import a submodule with that name and then
check the imported module again for that attribute
#. if the attribute is not found, :exc:`ImportError` is raised.
#. otherwise, a reference to that value is stored in the local namespace,
#. otherwise, a reference to that value is stored in the current namespace,
using the name in the :keyword:`!as` clause if it is present,
otherwise using the attribute name