Logo de CursoIA
CursoIA Curso de Inteligencia Artificial

Programación orientada a datos con Python, Unidad 5 — Funciones orientadas al procesamiento de datos, 5.1 — Funciones puras para datos ·

Entrada → salida

Entrada → salida: Definición y Ventajas de las Funciones Puras para Datos en Python

Introducción

En la programación orientada a datos, las funciones puras son un concepto fundamental. Una función pura es una función que, dado un conjunto de entrada, siempre devuelve el mismo resultado y no modifica los datos externos. Este enfoque es crucial cuando se trabaja con grandes volúmenes de datos y es esencial para garantizar la reproducibilidad y escalabilidad de nuestros proyectos.

Explicación Principal

Una función pura tiene dos características principales: determinismo y inmutabilidad. Esto significa que, dado los mismos valores de entrada, siempre devolverá el mismo valor de salida, y no modificará datos externos ni su estado interno a lo largo de las llamadas.

Ejemplo de Función Pura

def calcular_media(valores):
    return sum(valores) / len(valores)

Esta función toma una lista valores como entrada y devuelve la media. Nótese que no modifica la lista original ni utiliza variables globales, asegurando así que siempre devolverá el mismo resultado para los mismos valores de entrada.

Ventajas de las Funciones Puras

  1. Reproducibilidad: Si una función pura es llamada varias veces con los mismos datos de entrada, siempre obtendremos el mismo resultado.
  2. Paralelización: Las funciones puras pueden ser más fáciles de paralelizar ya que no dependen del estado global o de variables externas.
  3. Mantenimiento y Pruebas: Son más fáciles de probar y mantener, lo cual es crucial en proyectos grandes donde la lógica puede volverse compleja.

Errores Típicos / Trampas

Aunque las funciones puras son una buena práctica, su implementación puede llevar a algunos errores comunes. A continuación, se presentan algunas de estas trampas y cómo evitarlas:

  1. Modificación Inadvertida del Estado:
   def modificar_valores(valores):
       valores[0] = 100
       return valores

   datos = [5, 6, 7]
   print(modificar_valores(datos))  # Modifica el valor original de la lista

Solución: Usa copy() para crear una copia de los datos antes de modificarlos.

  1. Uso Inadecuado de Contextos Globales:
   global_var = 0

   def incrementar_global():
       global_var += 1
       return global_var

   print(incrementar_global())  # Modifica el valor global inadvertidamente

Solución: Evita la modificación de variables globales y pasa todos los datos necesarios como argumentos.

  1. Retorno Inadecuado:
   def obtener_info(datos):
       return

   print(obtener_info([1, 2, 3]))  # No devuelve nada

Solución: Asegúrate de que la función devuelva un valor adecuado.

Checklist Accionable

Para asegurarte de que estás implementando funciones puras correctamente en tu código:

  1. Evita el uso de variables globales.
  2. Crea copias de datos antes de modificarlos.
  3. Asegúrate de devolver un valor adecuado desde cada función.
  4. Documenta claramente la entrada y salida esperadas para cada función.
  5. Revisa tus funciones para asegurarte que no dependan del estado global o de variables externas.

Cierre

Siguientes Pasos

  • Aprende a usar copy() adecuadamente: Para crear copias de datos y evitar modificaciones inadvertidas.
  • Pon en práctica las funciones puras en tus proyectos actuales: Comienza con pequeños scripts y luego amplía a partes más grandes de tu código.
  • Revisa regularmente tus funciones para asegurarte que siguen siendo puras: Esto es especialmente útil cuando se añaden nuevas funcionalidades o cambios a tu código.

Las funciones puras son un paso importante en la programación orientada a datos, y su implementación adecuada puede mejorar significativamente la calidad de tu código. ¡Empieza hoy mismo a incorporar este buen hábito en tus proyectos!

Contacto

Indica tu objetivo (ChatGPT, RAG, agentes, automatización) y tu stack (web/backend).