Módulos: importación y uso
Introducción
Los módulos son uno de los pilares fundamentales de Python que nos permiten organizar y reutilizar nuestro código de manera efectiva. Imagina que tienes una caja de herramientas donde cada herramienta cumple una función específica; los módulos funcionan de manera similar, ofreciéndonos funcionalidades específicas que podemos utilizar según nuestras necesidades. En este artículo, aprenderemos qué son los módulos, cómo importarlos y cómo utilizarlos para mejorar nuestros programas.
¿Qué son los módulos?
Un módulo en Python es simplemente un archivo con extensión .py
que contiene definiciones de funciones, clases y variables que podemos reutilizar en otros programas. La biblioteca estándar de Python incluye cientos de módulos que resuelven problemas comunes, desde operaciones matemáticas hasta manipulación de archivos.
Tipos de módulos
En Python encontramos principalmente tres tipos de módulos:
- Módulos de la biblioteca estándar: Vienen instalados con Python (como
math
,random
,datetime
). - Módulos de terceros: Creados por la comunidad, se instalan mediante gestores de paquetes como
pip
. - Módulos propios: Los que creamos nosotros mismos para nuestros proyectos.
Cómo importar módulos
Python ofrece varias formas de importar módulos:
Importación completa
La forma más básica es importar el módulo completo:
import math
# Uso del módulo
resultado = math.sqrt(16)
print(resultado) # Imprime 4.0
En este caso, debemos usar el nombre del módulo como prefijo para acceder a sus funciones.
Importación con alias
Podemos asignar un nombre alternativo (alias) a un módulo para simplificar su uso:
import math as m
# Uso del módulo con alias
resultado = m.sqrt(16)
print(resultado) # Imprime 4.0
Esto es especialmente útil con módulos de nombres largos.
Importación selectiva
También podemos importar solo elementos específicos de un módulo:
from math import sqrt, pi
# Uso directo de las funciones importadas
resultado = sqrt(16)
print(resultado) # Imprime 4.0
print(pi) # Imprime 3.141592653589793
En este caso, no necesitamos usar el prefijo del módulo.
Importación global
Aunque generalmente no se recomienda, podemos importar todo el contenido de un módulo:
from math import *
# Uso directo de todas las funciones
resultado = sqrt(16)
angulo = sin(pi/2)
Esta práctica puede causar conflictos de nombres y dificultar la lectura del código.
Módulos comunes de la biblioteca estándar
Python incluye una amplia biblioteca estándar. Veamos algunos módulos útiles:
Módulo math
Proporciona funciones matemáticas:
import math
print(math.sqrt(25)) # Raíz cuadrada: 5.0
print(math.factorial(5)) # Factorial: 120
print(math.pi) # Valor de pi: 3.141592653589793
Módulo random
Para generar números y selecciones aleatorias:
import random
print(random.randint(1, 10)) # Número entero aleatorio entre 1 y 10
print(random.choice(["manzana", "naranja", "plátano"])) # Elemento aleatorio
numeros = [1, 2, 3, 4, 5]
random.shuffle(numeros) # Mezcla la lista aleatoriamente
print(numeros)
Módulo datetime
Para trabajar con fechas y horas:
import datetime
ahora = datetime.datetime.now()
print(ahora) # Fecha y hora actual
print(ahora.year) # Año actual
print(ahora.strftime("%d/%m/%Y")) # Formato personalizado de fecha
# Crear una fecha específica
fecha = datetime.datetime(2023, 12, 31)
print(fecha)
Módulo os
Para interactuar con el sistema operativo:
import os
# Directorio actual
print(os.getcwd())
# Listar archivos y carpetas
print(os.listdir())
# Comprobar si existe un archivo
print(os.path.exists("ejemplo.txt"))
El sistema de búsqueda de módulos
Cuando importamos un módulo, Python lo busca en este orden:
- El directorio actual
- La lista de directorios en la variable de entorno
PYTHONPATH
- Los directorios de instalación de Python
Podemos ver la ruta de búsqueda con:
import sys
print(sys.path)
Paquetes frente a módulos
Un paquete es simplemente una carpeta que contiene múltiples módulos (archivos .py
) relacionados. Los paquetes deben contener un archivo especial llamado __init__.py
(que puede estar vacío) para ser reconocidos como paquetes.
La estructura de un paquete podría ser:
mi_paquete/
├── __init__.py
├── modulo1.py
├── modulo2.py
└── subpaquete/
├── __init__.py
└── modulo3.py
Y podríamos importar así:
import mi_paquete.modulo1
from mi_paquete import modulo2
from mi_paquete.subpaquete import modulo3
Información sobre módulos
Podemos obtener información sobre un módulo con la función help()
:
import math
help(math) # Muestra documentación sobre el módulo math
También podemos listar todos los elementos de un módulo con dir()
:
import math
print(dir(math)) # Lista todos los nombres definidos en el módulo
Resumen
Los módulos son una herramienta esencial en Python que nos permiten organizar, reutilizar y compartir código. Aprender a importar y utilizar módulos no solo hará nuestro código más limpio y organizado, sino que también nos dará acceso a una enorme cantidad de funcionalidades ya implementadas, evitando "reinventar la rueda". En el próximo artículo, aprenderemos a crear nuestros propios módulos para compartir nuestro código entre diferentes programas.