6: Módulos y Paquetes
6.1 Módulos: Organizacion de tu código
Un módulo en Python no es más que un archivo con extensión .py que contiene código. Al dividir tu programa en módulos, puedes organizar funciones, clases y variables en archivos lógicos. Esto evita tener un solo archivo gigante y hace que tu código sea más legible y manejable.
Crear y usar un módulo
Imagina que tienes un archivo llamado operaciones_matematicas.py con las siguientes funciones:
# operaciones_matematicas.py
def sumar(a, b):
return a + b
def restar(a, b):
return a - b
Para usar estas funciones en otro archivo, por ejemplo, principal.py, necesitas importar el módulo.
# principal.py
# Importar el módulo completo
import operaciones_matematicas
# Usar las funciones del módulo
resultado_suma = operaciones_matematicas.sumar(10, 5)
print(f"La suma es: {resultado_suma}")
resultado_resta = operaciones_matematicas.restar(10, 5)
print(f"La resta es: {resultado_resta}")
Formas de importar
Hay varias maneras de importar módulos, cada una con sus ventajas:
-
Importación completa:
import nombre_del_modulo- Ventaja: Evita conflictos de nombres.
- Desventaja: El código puede ser más largo.
-
Importación específica:
from nombre_del_modulo import funcion_o_clase- Ventaja: Permite usar las funciones directamente sin el prefijo del módulo.
- Desventaja: Podría causar conflictos si importas funciones con el mismo nombre de diferentes módulos.
# principal.py
from operaciones_matematicas import sumar
resultado = sumar(20, 10)
print(f"El resultado es: {resultado}")
-
Importación con alias:
import nombre_del_modulo as alias- Ventaja: Útil para acortar nombres largos de módulos.
import operaciones_matematicas as op_mat
resultado = op_mat.sumar(7, 3)
print(f"La suma es: {resultado}")
6.2 Paquetes: Organizando módulos
Un paquete es una colección de módulos que están organizados en un directorio. Los paquetes te ayudan a estructurar tu proyecto de una manera jerárquica y lógica, especialmente cuando tienes muchos módulos. Un directorio se convierte en un paquete si contiene un archivo especial llamado __init__.py (aunque en las versiones más recientes de Python ya no es estrictamente necesario, es una buena práctica incluirlo).
Estructura de un paquete
Imagina la siguiente estructura de archivos:
mi_proyecto/
├── main.py
└── matematicas/
├── __init__.py
├── basicas.py
└── avanzadas.py
matematicases el paquete.basicas.pyyavanzadas.pyson los módulos dentro del paquete.
Importar desde un paquete
Para usar las funciones del módulo basicas.py en main.py, debes especificar la ruta completa desde la raíz de tu proyecto.
# main.py
from matematicas import basicas
print(basicas.sumar(2, 2))
También puedes importar directamente la función:
# main.py
from matematicas.basicas import sumar
print(sumar(10, 10))
6.3 Librerías: Módulos de terceros
Además de los módulos que tú creas, Python tiene una vasta comunidad que ha desarrollado librerías o bibliotecas (colecciones de paquetes y módulos) para casi cualquier tarea. Algunas librerías populares son NumPy para cálculos científicos, Pandas para análisis de datos y requests para hacer peticiones web. Para instalarlas, usas la herramienta pip, que viene incluida con Python.
Usando pip
Para instalar una librería, abre tu terminal y ejecuta:
pip install nombre_de_la_libreria
Una vez instalada, puedes importarla en tu código como cualquier otro módulo. Por ejemplo, para usar la librería requests:
# En la terminal
pip install requests
# En tu código Python
import requests
respuesta = requests.get("https://www.google.com")
print(respuesta.status_code)
Al dominar el uso de módulos y paquetes, podrás escalar tus proyectos, mantener un código limpio y aprovechar el enorme ecosistema de librerías de Python. ¡Felicidades, has completado los fundamentos de Python! Es hora de poner todo lo que has aprendido en práctica en tus propios proyectos.