Understanding import and modules
Key 3: Creating a custom loader for modules.
Import statements get references of other module objects in the current module's namespace. It consists of searching the module, executing code to create a module object, updating caches (sys.modules
), updating modules namespace, and creating a reference to new module being imported.
The built-in __import__
function searches and executes the module to create a module object. The importlib
library has the implementation, and it also provides a customizable interface to the import mechanism. Various classes interact to get the job done. The __import__
function should return a module object. For example, in the following example, we are creating a module finder, which checks for modules in any path that is given as an argument during construction. Here, an empty file named names.py
should be present at the given path. We have loaded the module, then inserted its module object in sys.modules
and added a function...