Функция __import__
является встроенной функцией Python, которая используется для импорта модулей. Хотя она редко используется напрямую в повседневном программировании, эта функция позволяет динамически импортировать модули в коде и является основой для функции import
.
Содержание
Синтаксис
__import__(name, globals=None, locals=None, fromlist=(), level=0)
Параметры
name
: Строка, представляющая имя модуля, который нужно импортировать.globals
(необязательно): Словарь глобальных переменных. Обычно используется значение, возвращаемое функциейglobals()
.locals
(необязательно): Словарь локальных переменных. Обычно используется значение, возвращаемое функциейlocals()
.fromlist
(необязательно): Список имен, которые должны быть импортированы из модуля. Если пусто, возвращается сам модуль.level
(необязательно): Уровень относительного импорта. Значение по умолчанию — 0, что означает абсолютный импорт.
Возвращаемое значение
Функция возвращает импортированный модуль. Если указан параметр fromlist
, то возвращаются соответствующие объекты из модуля.
Примеры использования
Пример 1: Простой импорт модуля
math_module = __import__('math')
print(math_module.sqrt(4)) # Вывод: 2.0
Пример 2: Импорт с использованием fromlist
os_path_module = __import__('os', fromlist=['path'])
print(os_path_module.path) # Вывод: <module 'posixpath' from '...'>
Пример 3: Импорт с относительным уровнем
# Внутри пакета `mypackage` и модуля `mymodule`
relative_import = __import__('.mymodule', globals(), locals(), [], 1)
Важные замечания
- Рекомендуется использовать
import
: В большинстве случаев лучше использовать стандартные инструкцииimport
иfrom ... import ...
, так как они более читабельны и понятны. - Безопасность: Динамический импорт модулей может быть рискованным, если вы импортируете модули из ненадежных источников. Будьте осторожны с данными, полученными из внешних источников.
- Использование в специальных случаях:
__import__
полезен в ситуациях, когда имя модуля неизвестно до выполнения программы или для создания динамически загружаемых модулей.