Functions as Arguments
Lektion 3 von 12 im Kurs Python-Dekoratoren von Coddy.
In Python können wir eine Funktion als Argument an eine andere Funktion übergeben.
Zum Beispiel:
def add_numbers(a, b):
return a + b
def multiply_numbers(a, b):
return a * b
def calculate(func, a, b):
return func(a, b)
result = calculate(add_numbers, 2, 3)
print(result) # Ausgabe: 5
result = calculate(multiply_numbers, 2, 3)
print(result) # Ausgabe: 6
In diesem Beispiel definieren wir zwei Funktionen: add_numbers und multiply_numbers.
Anschließend definieren wir eine dritte Funktion namens calculate, die eine Funktion func als erstes Argument sowie zwei zusätzliche Argumente a und b entgegennimmt.
Wenn wir calculate aufrufen, übergeben wir den Namen der Funktion, die wir verwenden möchten (entweder add_numbers oder multiply_numbers), als func-Argument zusammen mit den beiden Zahlen, mit denen wir arbeiten möchten.
Die Funktion calculate ruft dann die Funktion func mit den beiden Zahlen auf und gibt das Ergebnis zurück.
In dem obigen Beispiel rufen wir calculate zweimal auf: einmal mit add_numbers und einmal mit multiply_numbers.
Der erste Aufruf gibt die Summe von 2 und 3 zurück (was 5 ist), und der zweite Aufruf gibt das Produkt von 2 und 3 zurück (was 6 ist).
Aufgabe
EinfachSchreiben Sie eine Funktion namens list_operator, die eine Liste von Ganzzahlen und eine Operator-Funktion als Argumente entgegennimmt.
Die operator-Funktion sollte zwei Ganzzahlen als Eingabe nehmen und eine einzelne Ganzzahl als Ausgabe zurückgeben.
Die Funktion list_operator sollte die Operator-Funktion auf alle Paare benachbarter Ganzzahlen in der Liste anwenden und eine neue Liste mit den Ergebnissen zurückgeben.
Hier ist ein Beispiel dafür, wie die Funktion funktionieren sollte:
>>> numbers = [1, 2, 3, 4, 5]
>>> result = list_operator(numbers, operator.add)
>>> result
[3, 5, 7, 9]
>>> numbers = [10, 20, 30, 40]
>>> result = list_operator(numbers, operator.mul)
>>> result
[200, 600, 1200]Einschränkungen
- Die Eingabeliste enthält immer mindestens zwei Ganzzahlen.
- Die Operator-Funktion nimmt immer zwei Ganzzahlen als Eingabe und gibt eine einzelne Ganzzahl als Ausgabe zurück.
Hinweis! Die Operator-Funktion wird von uns bereitgestellt, Sie müssen sie nicht erstellen, sondern nur verwenden.
Probier es selbst
Alle Lektionen in Python-Dekoratoren
Übe selbstständig: Online-Python-Compiler