mirror of
https://github.com/python/cpython.git
synced 2026-05-06 04:37:33 -04:00
[3.13] gh-137337: Clarify import statement namespace binding (GH-144607) (GH-149370)
It is not always in the local namespace.
(cherry picked from commit b8ebd078f9)
Co-authored-by: Kit Dallege <xaum.io@gmail.com>
This commit is contained in:
committed by
GitHub
parent
6d6471b7eb
commit
3868444600
@@ -763,8 +763,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
|
||||
@@ -809,7 +810,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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user