Composition de fonctions avec Python

PythonPythonBeginner
Pratiquer maintenant

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

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

La composition de fonctions est une technique utilisée en programmation fonctionnelle pour combiner deux ou plusieurs fonctions pour former une nouvelle fonction. En Python, nous pouvons utiliser la fonction functools.reduce() pour effectuer une composition de fonctions de droite à gauche.


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{{"Composition de fonctions avec Python"}} python/tuples -.-> lab-13607{{"Composition de fonctions avec Python"}} python/function_definition -.-> lab-13607{{"Composition de fonctions avec Python"}} python/keyword_arguments -.-> lab-13607{{"Composition de fonctions avec Python"}} python/lambda_functions -.-> lab-13607{{"Composition de fonctions avec Python"}} python/importing_modules -.-> lab-13607{{"Composition de fonctions avec Python"}} python/using_packages -.-> lab-13607{{"Composition de fonctions avec Python"}} python/standard_libraries -.-> lab-13607{{"Composition de fonctions avec Python"}} end

Composer des fonctions

Écrivez une fonction appelée compose(*fns) qui accepte une ou plusieurs fonctions en tant qu'arguments et renvoie une nouvelle fonction qui est le résultat de la composition des fonctions d'entrée de droite à gauche. La dernière (la plus à droite) fonction peut accepter un ou plusieurs arguments ; les fonctions restantes doivent être unaires.

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

Résumé

Dans ce défi, vous avez appris à utiliser la fonction functools.reduce() pour effectuer une composition de fonctions de droite à gauche en Python. Vous avez également écrit une fonction appelée compose() qui accepte une ou plusieurs fonctions en tant qu'arguments et renvoie une nouvelle fonction qui est le résultat de la composition des fonctions d'entrée de droite à gauche.