Skip to content

Instantly share code, notes, and snippets.

@arturotena
Created September 4, 2025 01:33
Show Gist options
  • Select an option

  • Save arturotena/5271321439033ba4e7ed552599d967ea to your computer and use it in GitHub Desktop.

Select an option

Save arturotena/5271321439033ba4e7ed552599d967ea to your computer and use it in GitHub Desktop.
Definir dinamicamente un modulo en Python 3.11+
'''
Define dinamicamente un modulo en Python 3.11+.
Este código está en Dominio Público.
'''
class ContenidoModulo:
'''El contenido de esta clase conformará el módulo.'''
def saludar_olitas():
print("Olitas!")
from types import ModuleType as types_ModuleType
from sys import modules as sys_modules
# Crea un nuevo módulo.
modulo = types_ModuleType('saludo')
# Agrega los elementos de la clase al nuevo módulo.
contenido = [elem for elem in dir(ContenidoModulo)
if not elem.startswith('__')]
for elem in contenido:
exec (f'modulo.{elem} = ContenidoModulo.{elem}')
# Permite importar el modulo.
sys_modules.setdefault('saludo', modulo)
# Limpia.
del ContenidoModulo
del types_ModuleType
del sys_modules
del modulo
del contenido
# Ejemplo de uso.
import saludo
saludo.saludar_olitas()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment