Composición de funciones con Python

PythonPythonBeginner
Practicar Ahora

This tutorial is from open-source community. Access the source code

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

La composición de funciones es una técnica utilizada en la programación funcional para combinar dos o más funciones para formar una nueva función. En Python, podemos utilizar la función functools.reduce() para realizar la composición de funciones de derecha a izquierda.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/DataStructuresGroup(["Data Structures"]) python(("Python")) -.-> python/FunctionsGroup(["Functions"]) python(("Python")) -.-> python/ModulesandPackagesGroup(["Modules and Packages"]) python/BasicConceptsGroup -.-> python/comments("Comments") python/DataStructuresGroup -.-> python/tuples("Tuples") python/FunctionsGroup -.-> python/function_definition("Function Definition") python/FunctionsGroup -.-> python/keyword_arguments("Keyword Arguments") python/FunctionsGroup -.-> python/lambda_functions("Lambda Functions") python/ModulesandPackagesGroup -.-> python/importing_modules("Importing Modules") python/ModulesandPackagesGroup -.-> python/using_packages("Using Packages") python/ModulesandPackagesGroup -.-> python/standard_libraries("Common Standard Libraries") subgraph Lab Skills python/comments -.-> lab-13607{{"Composición de funciones con Python"}} python/tuples -.-> lab-13607{{"Composición de funciones con Python"}} python/function_definition -.-> lab-13607{{"Composición de funciones con Python"}} python/keyword_arguments -.-> lab-13607{{"Composición de funciones con Python"}} python/lambda_functions -.-> lab-13607{{"Composición de funciones con Python"}} python/importing_modules -.-> lab-13607{{"Composición de funciones con Python"}} python/using_packages -.-> lab-13607{{"Composición de funciones con Python"}} python/standard_libraries -.-> lab-13607{{"Composición de funciones con Python"}} end

Componer funciones

Escribe una función llamada compose(*fns) que acepte una o más funciones como argumentos y devuelva una nueva función que es el resultado de la composición de las funciones de entrada de derecha a izquierda. La última (más a la derecha) función puede aceptar uno o más argumentos; el resto de las funciones deben ser unarias.

from functools import reduce

def compose(*fns):
  return reduce(lambda f, g: lambda *args: f(g(*args)), fns)
add5 = lambda x: x + 5
multiply = lambda x, y: x * y
multiply_and_add_5 = compose(add5, multiply)
multiply_and_add_5(5, 2) ## 15

Resumen

En este desafío, aprendiste cómo utilizar la función functools.reduce() para realizar la composición de funciones de derecha a izquierda en Python. También escribiste una función llamada compose() que acepta una o más funciones como argumentos y devuelve una nueva función que es el resultado de la composición de las funciones de entrada de derecha a izquierda.