Подтвердить что ты не робот

В Python, как я могу получить доступ к пространству имен основного модуля из импортированного модуля?

В частности, мне нужно получить некоторые объекты и глобалы из основного модуля в импортированном модуле. Я знаю, как найти эти вещи, когда родительский модуль хочет что-то конкретное от дочернего модуля, но я не могу понять, как идти в другом направлении.

4b9b3361

Ответ 1

import __main__

Но не делайте этого.

Ответ 2

Ответ, который вы ищете, это:

import __main__

main_global1= __main__.global1

Однако, всякий раз, когда модуль module1 нуждается в материалах из модуля __main__, тогда:

  • либо модуль __main__ должен предоставить все необходимые данные в качестве параметров функции module1/class,
  • или вы должны поместить все, что нужно для совместного использования в другом модуле, и импортировать его как import module2 как в __main__, так и в module1.

Ответ 3

Я думаю, что это сработает:

import sys    
main_mod = sys.modules['__main__']

Ответ 4

Не уверен, что это хорошая практика, но, возможно, вы можете передать объекты и переменные, которые вам нужны, в качестве параметров для методов или классов, которые вы вызываете в импортированном модуле.