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
matematicas
es el paquete.basicas.py
yavanzadas.py
son 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.