¿Qué es la composición de funciones en Python?

Autor: | Última modificación: 15 de marzo de 2024 | Tiempo de Lectura: 3 minutos
Temas en este post: ,

Algunos de nuestros reconocimientos:

Premios KeepCoding

La composición de funciones en Python es una técnica fundamental en el mundo de la programación funcional. En este artículo, explorarás en detalle qué es la composición de funciones en Python, cómo crear funciones compuestas y cómo esta técnica puede ser una herramienta poderosa en el arsenal de cualquier programador Python.

¿Qué es la composición de funciones?

En esencia, la composición de funciones es la práctica de combinar dos o más funciones para crear una nueva función. Imagina que tienes dos funciones, A y B. La composición de funciones te permite ejecutar primero la función A y luego usar su resultado como entrada para la función B. Esto puede ser especialmente útil cuando deseas realizar una serie de operaciones en un conjunto de datos en un orden específico.

Cómo crear una función compuesta

Para crear una función compuesta en Python, puedes seguir estos pasos:

  1. Definir las funciones individuales: En primer lugar, debes definir las funciones que deseas combinar. Estas funciones pueden ser cualquiera que hayas creado o incluso funciones incorporadas en Python.
  2. Definir una nueva función: Luego, debes crear una nueva función que tomará el resultado de la primera función como entrada y lo pasará a la segunda función.
  3. Aplicar la composición: Finalmente, aplicas la composición de funciones llamando a la nueva función que creaste y proporcionando los argumentos necesarios.
def funcion_A(x): 
       return x * 2
 
def funcion_B(y): 
       return y + 3 

# Definir una función compuesta 
def funcion_compuesta(z): 
       resultado_A = funcion_A(z) 
       resultado_B = funcion_B(resultado_A) 
       return resultado_B 

# Usar la función compuesta 
resultado_final = funcion_compuesta(5) 
print(resultado_final) # Output: 13

En este ejemplo, hemos creado dos funciones simples, funcion_A y funcion_B, y luego las hemos combinado en una nueva función funcion_compuesta. Al llamar a funcion_compuesta(5), primero se aplica funcion_A(5), que devuelve 10, y luego se aplica funcion_B(10), que devuelve 13.

Composición de funciones y programación funcional

La composición de funciones en Python es una técnica fundamental en la programación funcional. En la programación funcional, se fomenta la creación de funciones puras que no tienen efectos secundarios y que se pueden combinar de manera modular para realizar tareas más complejas. La composición de funciones se ajusta perfectamente a este paradigma, ya que permite crear funciones compuestas a partir de funciones más simples.

Al adoptar la programación funcional y la composición de funciones en Python, los programadores pueden escribir código más limpio, legible y mantenible. Además, la programación funcional promueve la reutilización de código y la abstracción, lo que puede acelerar el desarrollo de software.

Caso práctico: Composición de funciones en Python

Para comprender mejor la utilidad de la composición de funciones en Python, considera un ejemplo práctico. Supongamos que estas construyendo un sistema de recomendación de películas y tienes una lista de películas con sus calificaciones promedio y quieres filtrar las películas que tienen una calificación superior a cierto umbral.

Podemos utilizar la composición de funciones para resolver este problema de manera elegante:

# Lista de películas con calificaciones promedio 
peliculas = [ 
       {"titulo": "Pelicula 1", "calificacion": 4.5}, 
       {"titulo": "Pelicula 2", "calificacion": 3.8}, 
       {"titulo": "Pelicula 3", "calificacion": 4.9}, 
       # ... Otras películas ... 

]
 
# Definir funciones para filtrar películas 
def calificacion_superior(pelicula): 
       return pelicula["calificacion"] >= 4.0
 
def obtener_titulo(pelicula): 
       return pelicula["titulo"]
 
# Combinar las funciones para filtrar y obtener títulos 
peliculas_recomendadas = list(map(obtener_titulo, filter(calificacion_superior, peliculas)))

print(peliculas_recomendadas) 
# Output: ['Pelicula 1', 'Pelicula 3']

En este ejemplo, hemos definido dos funciones, calificacion_superior y obtener_titulo, y luego las hemos combinado utilizando las funciones filter y map para obtener una lista de títulos de películas con calificaciones superiores a 4.0. Esta es una aplicación práctica de la composición de funciones en la vida real.

¿Quieres aprender más?

Si estás interesado en aprender más sobre la composición de funciones en Python y otras técnicas de programación funcional, el Desarrollo Web Full Stack Bootcamp de KeepCoding es lo que necesitas. Este bootcamp te brindará las habilidades imprescindibles para destacar en el sector tecnológico, una industria con una alta demanda de profesionales que ofrece salarios altos y una inmejorable estabilidad laboral. ¡No te pierdas la oportunidad de cambiar tu vida al ingresar al mundo IT!

Artículos ms leídos

¡CONVOCATORIA ABIERTA!

Desarrollo Web

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado