0Pricing
Python Academy · Lektion

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, map und die Vermeidung von Wiederholungen eignet,
  • .func, .args und .keywords bereitstellt und mit partialmethod eine 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

  1. Funktionen erster Klasse
  2. Closures und freie Variablen
  3. nonlocal und veränderlicher Zustand
  4. Partielle Funktionen
← Zurück zu Python Academy