Partielle Funktionen
functools.partial verwenden
Partielle Funktionen ist eine kostenlose Python Academy-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Python Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Python Academy-Kurs umfasst insgesamt 4 Lektionen.
Was ist ein Partial?
functools.partial erstellt eine neue Funktion, bei der einige Argumente einer vorhandenen Funktion bereits eingesetzt sind. Das ist wie das Vorbelegen von Argumenten, sodass Sie das Ergebnis mit weniger Argumenten aufrufen können.
Importieren Sie es mit from functools import partial.
from functools import partial
def power(base, exp):
return base ** exp
square = partial(power, exp=2)
print(square(5))Positionale Argumente vorbelegen
Positionale Argumente, die an partial übergeben werden, belegen die Parameter der Funktion von links nach rechts. Die übrigen Argumente werden beim Aufruf des Partials angegeben.
from functools import partial
def multiply(a, b):
return a * b
double = partial(multiply, 2)
print(double(10))
print(double(50))Benannte Argumente vorbelegen
An partial übergebene benannte Argumente werden zu Standardwerten, die Sie beim Aufruf weiterhin überschreiben können.
from functools import partial
def greet(name, greeting='Hello'):
return greeting + ', ' + name
hola = partial(greet, greeting='Hola')
print(hola('Ada'))
print(hola('Bob', greeting='Hey'))Partials mit integrierten Funktionen
Sie können auch für integrierte Funktionen Partials erstellen. Hier erstellen wir aus int einen Ganzzahl-Parser zur Basis 2.
from functools import partial
binary = partial(int, base=2)
print(binary('1010'))
print(binary('1111'))Übersichtlichere Callbacks
Partials eignen sich hervorragend für Callbacks, bei denen Sie eine Funktion ohne Argumente oder mit einem einzelnen Argument übergeben müssen, aber dennoch Kontext vorab laden möchten.
from functools import partial
def log(level, message):
return '[' + level + '] ' + message
error = partial(log, 'ERROR')
print(error('disk full'))Partials in map
Ein Partial lässt sich problemlos in Funktionen höherer Ordnung wie map einsetzen. Dabei wird ein Argument festgelegt, während das andere je nach Element variiert.
from functools import partial
def add(a, b):
return a + b
add10 = partial(add, 10)
print(list(map(add10, [1, 2, 3])))Ein Partial untersuchen
Ein Partial-Objekt stellt die verpackte Funktion über .func, die festgelegten positionalen Argumente über .args und die festgelegten benannten Argumente über .keywords bereit.
from functools import partial
def f(a, b, c):
return (a, b, c)
p = partial(f, 1, c=3)
print(p.func.__name__)
print(p.args)
print(p.keywords)Partials schachteln
Sie können ein Partial aus einem anderen Partial erstellen und so Schritt für Schritt weitere Argumente festlegen.
from functools import partial
def volume(l, w, h):
return l * w * h
base = partial(volume, 2)
slab = partial(base, 3)
print(slab(4))Partial und lambda im Vergleich
Ein lambda kann dieselbe Aufgabe übernehmen, aber partial ist häufig übersichtlicher, wenn Argumente festgelegt werden sollen, und stellt die verpackte Funktion zur Introspektion bereit.
from functools import partial
def power(base, exp):
return base ** exp
cube_p = partial(power, exp=3)
cube_l = lambda b: power(b, 3)
print(cube_p(2), cube_l(2))Ein echtes Beispiel: Runden
Erstellen Sie ein Rundungswerkzeug für zwei Dezimalstellen, indem Sie aus der integrierten Funktion round ein Partial erstellen.
from functools import partial
round2 = partial(round, ndigits=2)
print(round2(3.14159))
print(round2(2.71828))partialmethod für Klassen
Das verwandte functools.partialmethod erledigt dasselbe für Methoden innerhalb einer Klassendefinition und belegt Argumente einer Methode vor.
from functools import partialmethod
class Light:
def set(self, state):
self.state = state
return state
on = partialmethod(set, True)
off = partialmethod(set, False)
l = Light()
print(l.on())
print(l.off())Wissenscheck
Was bewirkt functools.partial?
Rückblick: Partials
Sie haben gelernt, dass functools.partial:
- eine neue Funktion mit einigen vorab festgelegten Argumenten erstellt (positional oder benannt),
- das Überschreiben voreingestellter benannter Standardwerte beim Aufruf ermöglicht,
- sich ideal für Callbacks,
mapund die Vermeidung von Wiederholungen eignet, .func,.argsund.keywordsbereitstellt und mitpartialmethodeine Methodenvariante besitzt.
from functools import partial
add = lambda a, b: a + b
plus1 = partial(add, 1)
print(plus1(41))Häufig gestellte Fragen
Ist die Lektion „Partielle Funktionen“ kostenlos?
Ja — der vollständige Text von „Partielle Funktionen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Python Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Python Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Partielle Funktionen“?
functools.partial verwenden Du übst Python Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Python Academy zu starten?
Keine Vorkenntnisse erforderlich. Python Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.
Wie lange dauert die Lektion „Partielle Funktionen“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Python Academy-Lektion Code schreiben und ausführen?
Ja. Jede Python Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Funktionen erster Klasse
- Closures und freie Variablen
- nonlocal und veränderlicher Zustand
- Partielle Funktionen