modules - En Python, ¿cómo puedo acceder al espacio de nombres del módulo principal desde un módulo importado?
python modules list (4)
Específicamente, necesito obtener algunos objetos y globales del módulo principal en un módulo importado. Sé cómo encontrar esas cosas cuando el módulo principal quiere algo particular de un módulo secundario, pero no puedo averiguar cómo ir en la otra dirección.
Creo que esto funcionaría:
import sys
main_mod = sys.modules[''__main__'']
La respuesta que estás buscando es:
import __main__
main_global1= __main__.global1
Sin embargo, cada vez que un módulo module1
necesita cosas del módulo __main__
, entonces:
- o bien el módulo
__main__
debe proporcionar todos los datos necesarios como parámetros a una función / clase demodule1
, - o debe poner todo lo que necesita ser compartido en otro módulo, e importarlo como
import module2
tanto en__main__
como enmodule1
.
No estoy seguro si es una buena práctica, pero tal vez podría pasar los objetos y las variables que necesita como parámetros a los métodos o clases que llama en el módulo importado.
import __main__
Pero no hagas esto.