Что эквивалентно import *
в Python, используя функции (предположительно от importlib
)?
Я знаю, что вы можете импортировать модуль с mod = __import__(...)
, который будет делегировать все текущие настройки. Вы также можете сделать что-то вроде
mod_spec = importlib.utl.spec_from_file_location(...)
mod = importlib.util.module_from_spec(mod_spec)
mod_spec.loader.exec_module(mod)
который позволяет вам делать сумасшедшие вещи, например, вводить вещи в модуль, вставляя их перед вызовом exec_module
. (Предоставлено qaru.site/info/12695/... и qaru.site/info/386891/...)
Однако мой вопрос остается. Как import *
работает в форме функции? Какая функция определяет, какие имена загружаются из модуля в зависимости от наличия/содержимого __all__
?