¿Cómo obtener una referencia a un módulo dentro del propio módulo?

¿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?

import sys current_module = sys.modules[__name__] 

Si tiene una clase en ese módulo, entonces 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.

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 documentación de Python.

Una técnica más, que no importa el módulo sys, y podría decirse, depende de su gusto, más simple:

 current_module = __import__(__name__) 

Tenga en cuenta que no hay importación. Python importa cada módulo solo una vez.

Puedes pasarlo desde el exterior:

 mymod.init(mymod) 

No es ideal pero funciona para mi caso de uso actual.