Ir al contenido principal

Módulos y paquetes en Python

1. ¿Qué es un Módulo?

Un módulo en Python es un archivo que contiene definiciones y declaraciones de Python, como funciones, clases y variables, que puedes reutilizar en diferentes partes de tu programa. Los módulos permiten organizar el código en secciones lógicas y mantenerlo limpio y manejable.

Creación de un Módulo

Para crear un módulo, simplemente guarda tu código en un archivo con extensión .py.

Ejemplo:

# archivo: mi_modulo.py

def saludar(nombre):
    print(f"Hola, {nombre}!")

pi = 3.14159

Importación de un Módulo

Para usar las funciones y variables definidas en un módulo, debes importarlo en tu script principal.

# archivo: main.py

import mi_modulo

mi_modulo.saludar("Ana")
print(mi_modulo.pi)

2. Tipos de Importación

Importar Módulo Completo

import mi_modulo
mi_modulo.saludar("Ana")

Importar Funciones o Variables Específicas

from mi_modulo import saludar, pi
saludar("Ana")
print(pi)

Importar con un Alias

import mi_modulo as mod
mod.saludar("Ana")
print(mod.pi)

3. Uso del Módulo math

Python incluye una biblioteca estándar con módulos predefinidos como math, que proporciona funciones matemáticas.

import math

print(math.sqrt(16))  # 4.0
print(math.pi)        # 3.141592653589793

4. ¿Qué es un Paquete?

Un paquete es una forma de organizar módulos relacionados en un directorio jerárquico. Un paquete es simplemente un directorio que contiene un archivo especial __init__.py (que puede estar vacío) y uno o más módulos.

Creación de un Paquete

Estructura de directorios:

mi_paquete/
    __init__.py
    modulo1.py
    modulo2.py

Contenido de __init__.py:

# Este archivo puede estar vacío o inicializar el paquete

Contenido de modulo1.py:

def funcion_modulo1():
    print("Función en módulo 1")

Contenido de modulo2.py:

def funcion_modulo2():
    print("Función en módulo 2")

Importación de Módulos desde un Paquete

from mi_paquete import modulo1, modulo2

modulo1.funcion_modulo1()
modulo2.funcion_modulo2()

5. Importación Relativa

Dentro de los módulos de un paquete, puedes usar la importación relativa para importar otros módulos del mismo paquete.

Ejemplo de Importación Relativa

# archivo: mi_paquete/modulo1.py

from . import modulo2

def funcion_modulo1():
    print("Función en módulo 1")
    modulo2.funcion_modulo2()

6. Uso de __all__ en __init__.py

El atributo __all__ define qué módulos o nombres se exportarán cuando se use from paquete import *.

Ejemplo:

# archivo: mi_paquete/__init__.py

__all__ = ["modulo1", "modulo2"]

7. Ejemplos Prácticos

Uso de Módulos y Paquetes en un Proyecto

Supongamos que tienes un proyecto con la siguiente estructura:

proyecto/
    main.py
    operaciones/
        __init__.py
        suma.py
        resta.py

Contenido de suma.py:

def sumar(a, b):
    return a + b

Contenido de resta.py:

def restar(a, b):
    return a - b

Contenido de __init__.py:

# Este archivo puede estar vacío o inicializar el paquete

Contenido de main.py:

from operaciones import suma, resta

print(suma.sumar(5, 3))  # 8
print(resta.restar(5, 3))  # 2


Comentarios

Entradas populares de este blog

Variables y asignación en Python

1. ¿Qué es una Variable? Una variable es un contenedor para almacenar datos. En Python, una variable se puede entender como un nombre que hace referencia a un valor almacenado en la memoria. Las variables permiten que los programas recuerden y manipulen datos. Ejemplo Básico: # Creación de una variable y asignación de un valor x = 10 y = "Hola" z = 3.14 2. Asignación de Valores La asignación de valores en Python se realiza utilizando el operador  = . La variable aparece a la izquierda del operador de asignación y el valor asignado a la derecha. a = 5 # Asigna el valor 5 a la variable 'a' b = "Texto" # Asigna la cadena "Texto" a la variable 'b' c = 4.5 # Asigna el valor flotante 4.5 a la variable 'c' 3. Reglas para Nombres de Variables Debe comenzar con una letra (a-z, A-Z) o un guion bajo ( _ ), pero no con un número. Puede contener letras, números y guiones bajos. Python distingue entre mayúsculas y minúsculas, ...

Operadores y expresiones en Python

1. Operadores Aritméticos Los operadores aritméticos se utilizan para realizar operaciones matemáticas básicas. Suma ( + ) : Suma dos operandos. a = 10 b = 5 suma = a + b # 15 Resta ( - ) : Resta el segundo operando del primero. resta = a - b # 5 Multiplicación ( * ) : Multiplica dos operandos. multiplicacion = a * b # 50 División ( / ) : Divide el primer operando por el segundo. El resultado es un número flotante. division = a / b # 2.0 División Entera ( // ) : Divide el primer operando por el segundo y devuelve la parte entera del resultado. division_entera = a // b # 2 Módulo ( % ) : Devuelve el resto de la división del primer operando por el segundo. modulo = a % b # 0 Exponenciación ( ** ) : Eleva el primer operando a la potencia del segundo. potencia = a ** b # 100000 2. Operadores de Asignación Los operadores de asignación se utilizan para asignar valores a las variables. Asignación Simple ( = ) : Asigna el valor del operando de la derecha a la variable de la izq...

Tendencias en la Ciencia de Datos para el 2025: Innovaciones y Desafíos

La ciencia de datos ha evolucionado rápidamente en los últimos años, y el 2025 promete ser un año lleno de innovaciones y desafíos. A medida que las empresas buscan aprovechar el poder de los datos para tomar decisiones informadas y mejorar sus operaciones, varias tendencias emergentes están marcando el rumbo del futuro de la ciencia de datos. 1. Inteligencia Artificial Generativa Una de las tendencias más destacadas es el uso de la inteligencia artificial generativa, como los modelos de lenguaje grandes (LLM) y las herramientas de IA como ChatGPT. Estas tecnologías están revolucionando la forma en que extraemos valor de los datos, permitiendo a cualquier persona, sin importar su experiencia técnica, consultar conjuntos de datos complejos y recibir información instantánea. Esta democratización del análisis de datos está nivelando el campo entre grandes empresas y sus competidores más pequeños y ágiles. 2. Datos Sintéticos Con el aumento de las preocupaciones sobre la privacidad y la r...