Partielle Funktionen#
In einigen Anwendungsfällen kann es erforderlich sein, eine Funktion zusammen mit einigen Parametern in einer Variable zu sammeln, um sie später auszuführen. functools’ partial()
ermöglicht dies.
from functools import partial
Zur Demonstration definieren wir eine Beispielfunktion.
def compute_sum(a, b):
return a + b
Wir können dann das partial
-Objekt dieser Funktion in Kombination mit den Parametern in einer Variable speichern.
sum_of_3_and_4 = partial(compute_sum, 3, 4)
Dieses Objekt ist aufrufbar.
sum_of_3_and_4()
7
Parameter ungesetzt lassen#
Es ist auch möglich, Parameter nur teilweise zu spezifizieren.
sum_of_3_and_b = partial(compute_sum, 3)
sum_of_3_and_b(9)
12
Übergeben von Schlüsselwortargumenten#
Es funktioniert auch mit Schlüsselwortargumenten.
sum_of_a_and_4 = partial(compute_sum, b=4)
sum_of_a_and_4(5)
9
sum_of_a_and_4(a=1)
5
Übung#
Programmieren Sie eine Funktion, die den euklidischen Abstand zwischen zwei Punkten bestimmt. Verwenden Sie anschließend partial
, um einen festen Punkt zu übergeben, und eine for-Schleife, um die Abstände zu einer Liste von Punkten auszugeben.
fixed_point = (1, 1, 1)
list_of_points = [(2,1,1), (1,1,3), (2,2,2)]