Created
September 4, 2025 01:33
-
-
Save arturotena/5271321439033ba4e7ed552599d967ea to your computer and use it in GitHub Desktop.
Definir dinamicamente un modulo en Python 3.11+
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| ''' | |
| 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