funciona - Python: ¿cómo obtengo una referencia a un módulo dentro del módulo?
self python 3 (5)
Puede obtener el nombre del módulo actual usando __name__
La referencia del módulo se puede encontrar en el diccionario sys.modules
.
Ver la documentation Python
¿Cómo puedo obtener una referencia a un módulo desde ese módulo? Además, ¿cómo puedo obtener una referencia al paquete que contiene ese módulo?
Puedes pasarlo desde afuera:
mymod.init(mymod)
No es ideal, pero funciona para mi caso de uso actual.
Si tiene una clase en ese módulo, la propiedad __module__
de la clase es el nombre del módulo de la clase. Por lo tanto, puede acceder al módulo a través de sys.modules[klass.__module__]
. Esto también funciona para funciones.
Una técnica más, que no importa el módulo sys, y podría decirse que depende de tu gusto, es más simple:
current_module = __import__(__name__)
Tenga en cuenta que no hay importación. Python importa cada módulo solo una vez.
import sys
current_module = sys.modules[__name__]