import importlib importlib.__import__(name, globals=None, locals=None, fromlist=(), level=0)
name
- строка str
, имя модуляglobals=None
- значения глобальных переменныхlocals=None
- значения локальных переменныхfromlist=()
- список вызываемых объектовlevel=0
- int
, количество родительских каталогов для поискаФункция __import__()
модуля importlib
это реализация встроенной функции __import__()
.
Это продвинутая функция, которая не нужна в повседневном программировании на Python, в отличие от importlib.import_module()
.
Например, оператор import spam
приводит к инструкциям, похожим на следующий код:
import importlib spam = importlib.__import__('spam', globals(), locals(), [], 0)
Инструкция import spam.ham
приводит к выполнению этого кода. Обратите внимание, как importlib.__import__()
возвращает здесь модуль верхнего уровня, поскольку это объект, связанный с именем инструкцией import
.
import importlib spam = importlib.__import__('spam.ham', globals(), locals(), [], 0)
Конструкция импорта вида from spam.ham import eggs, sausage as saus
приводит к выполнению следующего кода:
import importlib _temp = importlib.__import__('spam.ham', globals(), locals(), ['eggs', 'sausage'], 0) eggs = _temp.eggs saus = _temp.sausage
Здесь из модуля 'spam.ham'
извлекаются имена 'eggs'
, 'sausage'
для импорта и присваиваются им соответствующие имена 'eggs'
, 'saus
`.