Módulos y Paquetes
A medida que main.py
crece, es fundamental organizar el código dividiéndolo según su funcionalidad.
- Módulos: Son archivos
.py
que contienen funciones, clases o variables reutilizables. Se importan conimport nombre_modulo
. - Paquetes: Son carpetas que agrupan módulos relacionados. Deben incluir un archivo
__init__.py
(puede estar vacío) para que Python los reconozca como paquetes.
Esto facilita la mantenibilidad y reutilización del código. Veamos un ejemplo
mi_proyecto/
│── main.py # Archivo principal
│── utilidades.py # Módulo con funciones auxiliares
│
├── paquete/ # Paquete con varios módulos
│ │── __init__.py # Indica que es un paquete
│ │── modulo1.py # Módulo con funciones específicas
│ │── modulo2.py # Otro módulo con más funciones
Para hacer uso de nuestros módulos en el fichero main.py
tendríamos que importarlos de la siguiente manera:
import utilidades
from paquete import modulo1
from paquete.modulo2 import funcion1
if __name__ == "__main__":
# ejecutamos una funcion definida en el modulo de utilidades
utilidades.funcion1(args)
# de la misma manera podemos ejecutar una funcion del modulo1
modulo1.funcion1(args, **kwargs)
resultado = funcion1(**kwargs) # esta funcion es la definida en el modulo2
Python posee modulos definidos en la librería estándar como la librería math
. Que aunque no esté en nuestro árbol de ficheros del proyecto, también puede ser importado.
# Puedes importar
import math
print(math.sqrt(16)) #=> 4.0
# Puedes obtener funciones específicas desde un módulo
from math import ceil, floor
print(ceil(3.7)) #=> 4.0
print(floor(3.7))#=> 3.0
# Puedes importar todas las funciones de un módulo
# Precaución: Esto no es recomendable
from math import *
# Puedes acortar los nombres de los módulos como alias
import math as m
math.sqrt(16) == m.sqrt(16) #=> True
# Puedes encontrar que funciones y atributos definen un módulo.
import math
dir(math)