1 usuario conectado
Módulos y paquetes. Importación de módulos
Módulos y paquetes. Importación de módulos
Ahora vamos a adentrarnos en el mundo de los
módulos y paquetes en Python, que son mecanismos fundamentales
para organizar y reutilizar tu código.
Módulos:
Un módulo en Python es
simplemente un archivo que contiene código Python (definiciones de funciones,
clases, variables, etc.) y tiene la extensión .py
. Los módulos
permiten dividir un programa grande en archivos más pequeños y manejables,
facilitando la organización, la reutilización de código y el mantenimiento.
Importación de Módulos:
Para utilizar el código de un módulo en otro
archivo Python, necesitas importar el módulo. Python
proporciona varias formas de hacerlo:
-
import nombre_del_modulo
:
- Importa el módulo completo.
- Para acceder a los elementos (funciones,
clases, variables) definidos en el módulo, debes usar la notación de
punto (
nombre_del_modulo.elemento
).
Ejemplo:
Supongamos que tienes un archivo llamado
calculadora.py
con el siguiente contenido:
Ahora, en otro archivo Python, puedes
importar y usar este módulo así:
Salida:
-
from nombre_del_modulo import
elemento1, elemento2, ...
:
- Importa elementos específicos
(funciones, clases, variables) del módulo directamente al espacio de
nombres actual.
- Después de la importación, puedes usar
estos elementos directamente sin necesidad de prefijarlos con el nombre
del módulo.
Ejemplo (usando el mismo
calculadora.py
):
Salida:
-
from nombre_del_modulo import *
:
- Importa todos los nombres (excepto
aquellos que comienzan con un guion bajo
_
) definidos en el
módulo directamente al espacio de nombres actual.
- Generalmente se desaconseja
usar esta forma de importación, ya que puede llevar a colisiones de
nombres (si el módulo importado tiene nombres iguales a los definidos en
tu script) y hace que sea menos claro de dónde provienen los nombres.
Ejemplo (con precaución):
Salida:
-
Importar con un alias (as
):
- Permite asignar un nombre alternativo
(alias) al módulo o a los elementos importados. Esto puede ser útil si
el nombre del módulo es largo o si hay conflictos de nombres.
Ejemplo (alias para el módulo):
Salida:
Ejemplo (alias para elementos
específicos):
Salida:
Paquetes:
Un paquete es una colección
de módulos Python relacionados organizados en una estructura de directorios. Los
paquetes ayudan a estructurar grandes proyectos de Python y a evitar conflictos
de nombres entre módulos.
Para que Python trate un directorio como un
paquete, debe contener un archivo especial llamado __init__.py
(puede estar vacío en versiones recientes de Python, pero tradicionalmente se
utilizaba para realizar inicializaciones del paquete o para definir qué módulos
del paquete deben ser exportados cuando se importa el paquete).
Estructura de un Paquete de Ejemplo:
Importación de Elementos desde
Paquetes:
Puedes importar módulos y elementos desde
paquetes utilizando una sintaxis similar a la importación de módulos
individuales, utilizando la notación de punto para navegar por la estructura del
paquete.
Ejemplos de Importación desde Paquetes
(asumiendo la estructura anterior):
-
Importar el módulo completo:
-
Importar el submódulo completo:
-
Importar elementos específicos
desde un módulo en un paquete:
-
Importar elementos específicos
directamente al espacio de nombres:
El archivo __init__.py
:
- Puede estar vacío (a partir de Python
3.3, los directorios con archivos
.py
se consideran paquetes,
incluso sin __init__.py
).
- Tradicionalmente, se utilizaba para marcar
el directorio como un paquete.
- Puede contener código de inicialización
para el paquete.
- Puede definir la lista de submódulos que
deben importarse cuando se importa el paquete usando
from mi_paquete
import *
(a través de la variable __all__
).
Con esta definición en __init__.py
,
from mi_paquete import *
importaría modulo_a
y el
submódulo subpaquete
.
Los módulos y paquetes son herramientas
esenciales para organizar y reutilizar código en proyectos Python de cualquier
tamaño. Permiten crear código más modular, legible y mantenible.