@communistic_sistema
Биохимик, но в программировании немного шарю

Как импортировать пакет/модуль через другой файл?

У меня есть def b(): #do в ab.py, abc.py содержит функцию import abcd as a и a.load(), abcd.py содержит def load(): import ab. Конечный результат: модуль/пакет был импортирован в abcd.py, как мне импортировать в abc.py ab.py, но через функцию load(), которая в abcd.py?
  • Вопрос задан
  • 62 просмотра
Решения вопроса 1
@Vindicar
Так, как вы это пытаетесь сделать - никак. Просто невозможно.
Максимум, вы можете схитрить: пусть load() возвращает объект(ы) модуля(ей), которые она импортировала, а код, который вызывает load(), сам присваивает этим объектам имена.
#somemodule.py
def load():
  import mymodule1
  import mymodule2
  return mymodule1, mymodule2

А потом
import somemodule
mymodule1, mymodule2 = somemodule.load()


Но вообще вам дело говорят, такие конструкции - повод задуматься о структуре приложения.
Раз уж основной модуль должен использовать какие-то субмодули, может, пусть он их и импортирует сам?
Тем более что повторный импорт в питоне очень быстр, модули при импорте кэшируются.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@communistic_sistema Автор вопроса
Биохимик, но в программировании немного шарю
Я нашел ответ на вопрос сам. В книге про питон ничего не нашлось, зато на сайте да:
def load():
     global module
     import module
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы