Funktionskomposition mit Python

PythonPythonBeginner
Jetzt üben

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

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

Die Funktionskomposition ist eine Technik, die in der funktionalen Programmierung verwendet wird, um zwei oder mehr Funktionen zu kombinieren und eine neue Funktion zu bilden. In Python können wir die functools.reduce()-Funktion verwenden, um eine rechts-links-Funktionskomposition durchzuführen.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/DataStructuresGroup(["Data Structures"]) python(("Python")) -.-> python/FunctionsGroup(["Functions"]) python(("Python")) -.-> python/ModulesandPackagesGroup(["Modules and Packages"]) python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) 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{{"Funktionskomposition mit Python"}} python/tuples -.-> lab-13607{{"Funktionskomposition mit Python"}} python/function_definition -.-> lab-13607{{"Funktionskomposition mit Python"}} python/keyword_arguments -.-> lab-13607{{"Funktionskomposition mit Python"}} python/lambda_functions -.-> lab-13607{{"Funktionskomposition mit Python"}} python/importing_modules -.-> lab-13607{{"Funktionskomposition mit Python"}} python/using_packages -.-> lab-13607{{"Funktionskomposition mit Python"}} python/standard_libraries -.-> lab-13607{{"Funktionskomposition mit Python"}} end

Funktionen zusammensetzen

Schreiben Sie eine Funktion namens compose(*fns), die eine oder mehrere Funktionen als Argumente akzeptiert und eine neue Funktion zurückgibt, die das Ergebnis der Komposition der Eingabefunktionen von rechts nach links ist. Die letzte (rechtsmöglichste) Funktion kann ein oder mehrere Argumente akzeptieren; die verbleibenden Funktionen müssen einstellige sein.

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

Zusammenfassung

In dieser Herausforderung haben Sie gelernt, wie Sie die functools.reduce()-Funktion in Python verwenden, um eine rechts-links-Funktionskomposition durchzuführen. Sie haben auch eine Funktion namens compose() geschrieben, die eine oder mehrere Funktionen als Argumente akzeptiert und eine neue Funktion zurückgibt, die das Ergebnis der Komposition der Eingabefunktionen von rechts nach links ist.