Importar módulos en Python en aras de mejorar o extender la funcionalidad del código. Pero existen algunas ocasiones en las que no sabemos el nombre del módulo hasta que el programa está en ejecución, y aquí es precisamente donde entra en juego la función __import()__, que nos permite importar módulos de forma donámica. En este artículo vamos a contarte un poco acerca de __import__() y cómo funciona, para que puedas usarla en distintos contextos.
¿Qué es __import__()?
__import__() es una función que viene incorporada en Python y nos hace posible importar módulos de manera dinámica, es decir, en tiempo de ejecución. Si bien en la mayoría de casos usamos la palabra reservada import para traer un módulo al código, gracias a __import__() podemos cargar los módulos cuyo nombre se desconoce hasta que el módulo ya está siendo ejecutado.
Esta es una flexibilidad que puede servirnos en casos muy específicos, como por ejemplo cuando necesitamos cargar un módulo solo si se cumple cierta condición o cuando el nombre delmódulo se encuentra contenido dentro de una variable.
La sintaxis básica de __import__() es la siguiente:
__import__(name, globals, locals, fromlist, level)
Lo que hace cada parámetro de __import__() es:
- name: Es el nombre del módulo que deseas importar. Este debe ser un string.
- globals y locals: Son espacios de nombres utilizados para interpretar los módulos. En la mayoría de los casos, se utilizan como globals() y locals().
- fromlist: Una lista de objetos o submódulos que quieres importar. Si no especificas nada, se importará el módulo completo.
- level: Este parámetro determina si se debe usar una importación relativa o absoluta. El valor predeterminado es -1, lo que significa que se pueden usar tanto importaciones relativas como absolutas.
¿Cómo debes usar import() en Python?
Si quieres usar __import__(), solo debes pasarle a esta función el nombre del módulo en forma de string. Con esto el método devolverá un objeto que representa el módulo importado. Así podrás acceder a todas las funciones, clases y variables que ese módulo contenga.
🔴 ¿Quieres Aprender a Programar con Python? 🔴
Descubre el Full Stack Jr. Bootcamp - Aprende a Programar desde Cero de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada
👉 Prueba gratis el Bootcamp Aprende a Programar desde Cero por una semanaPor ejemplo, supongamos que queremos importar el módulo numpy dinámicamente y crear un array:
# Importando el módulo numpy
np = __import__('numpy', globals(), locals(), [], 0)
# Crear un array con numpy
a = np.array([1, 2, 3])
# Imprimir el tipo del array
print(type(a))
La salida de este código será:
<class 'numpy.ndarray'>
Aquí en este ejemplo hemos importado el módulo numpy usando import() y hemos creado un array. Como puedes observar, este enfoque es bastante flexible y nos permite importar el módulo en cualquier parte del código sin necesidad de hacerlo al inicio del archivo.
¿Cuándo usar import()?
Si bien __import__() puede servirnos en multiplicidad de ocasiones, existirán otras tantas en las que no sea tan común su uso. Por lo general se usa la palabra reservada import, simplemente, pero, como ya dijimos, existen ocasiones en las que el módulo o submódulo se determina en tiempo de ejecución, por tanto en este caso, __import__() será la opción más óptima.
Algunos escenarios donde podrías considerar su uso incluyen:
- Importación de módulos basados en condiciones: Cuando deseas importar un módulo solo si se cumplen ciertas condiciones.
- Cargar módulos con nombres variables: Si el nombre del módulo es dinámico o viene de una fuente externa, import() te permite gestionarlo fácilmente.
- Optimización de código: Si solo necesitas importar funciones o submódulos específicos, puedes hacerlo con import() en lugar de cargar todo el módulo.
Si este artículo te ha sido de utilidad y te ha gustado el tema, recuerda que todas estas temáticas las puedes aprender dentro de nuestro bootcamp de programación inicial, en el que entenderás las bases de la programación y te iniciarás en algunos lenguajes simples como python. Inicia tu camino hacia el éxito laboral ahora e inscríbete.