Kaydet (Commit) 23763168 authored tarafından Brett Cannon's avatar Brett Cannon

Issue #27853: Add section headers to the importlib example docs

üst 7322225a
...@@ -1353,6 +1353,9 @@ an :term:`importer`. ...@@ -1353,6 +1353,9 @@ an :term:`importer`.
Examples Examples
-------- --------
Importing programmatically
''''''''''''''''''''''''''
To programmatically import a module, use :func:`importlib.import_module`. To programmatically import a module, use :func:`importlib.import_module`.
:: ::
...@@ -1360,6 +1363,10 @@ To programmatically import a module, use :func:`importlib.import_module`. ...@@ -1360,6 +1363,10 @@ To programmatically import a module, use :func:`importlib.import_module`.
itertools = importlib.import_module('itertools') itertools = importlib.import_module('itertools')
Checking if a module can be imported
''''''''''''''''''''''''''''''''''''
If you need to find out if a module can be imported without actually doing the If you need to find out if a module can be imported without actually doing the
import, then you should use :func:`importlib.util.find_spec`. import, then you should use :func:`importlib.util.find_spec`.
:: ::
...@@ -1380,6 +1387,10 @@ import, then you should use :func:`importlib.util.find_spec`. ...@@ -1380,6 +1387,10 @@ import, then you should use :func:`importlib.util.find_spec`.
# Adding the module to sys.modules is optional. # Adding the module to sys.modules is optional.
sys.modules[name] = module sys.modules[name] = module
Importing a source file directly
''''''''''''''''''''''''''''''''
To import a Python source file directly, use the following recipe To import a Python source file directly, use the following recipe
(Python 3.4 and newer only):: (Python 3.4 and newer only)::
...@@ -1398,6 +1409,10 @@ To import a Python source file directly, use the following recipe ...@@ -1398,6 +1409,10 @@ To import a Python source file directly, use the following recipe
# by name later. # by name later.
sys.modules[module_name] = module sys.modules[module_name] = module
Setting up an importer
''''''''''''''''''''''
For deep customizations of import, you typically want to implement an For deep customizations of import, you typically want to implement an
:term:`importer`. This means managing both the :term:`finder` and :term:`loader` :term:`importer`. This means managing both the :term:`finder` and :term:`loader`
side of things. For finders there are two flavours to choose from depending on side of things. For finders there are two flavours to choose from depending on
...@@ -1428,6 +1443,10 @@ classes defined within this package):: ...@@ -1428,6 +1443,10 @@ classes defined within this package)::
# of priority. # of priority.
sys.path_hooks.append(SpamPathEntryFinder.path_hook(loader_details)) sys.path_hooks.append(SpamPathEntryFinder.path_hook(loader_details))
Approximating :func:`importlib.import_module`
'''''''''''''''''''''''''''''''''''''''''''''
Import itself is implemented in Python code, making it possible to Import itself is implemented in Python code, making it possible to
expose most of the import machinery through importlib. The following expose most of the import machinery through importlib. The following
helps illustrate the various APIs that importlib exposes by providing an helps illustrate the various APIs that importlib exposes by providing an
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment