Lesen Sie den vollständigen Artikel auf Global News One
functools.partial erstellt eine neue Funktion, indem es Argumente teilweise auf eine vorhandene Funktion anwendet. Dies ist hilfreich, um Funktionsaufrufe in Szenarien zu vereinfachen, in denen bestimmte Argumente sich wiederholen oder festgelegt sind.
Mit der Funktion functools.partial in Python können Sie einen Teil der Argumente oder Schlüsselwörter einer Funktion „einfrieren“ und so eine neue Funktion mit weniger Parametern erstellen. Dies ist besonders nützlich, wenn Sie bestimmte Parameter einer Funktion festlegen und andere flexibel halten möchten.
from functools import partial
partial(func, *args, **kwargs)
Das zurückgegebene Objekt ist eine neue Funktion, bei der die festen Argumente „eingefroren“ sind und Sie beim Aufruf der neuen Funktion nur die verbleibenden Argumente angeben müssen.
def power(base, exponent): return base ** exponent # Create a square function by fixing exponent = 2 square = partial(power, exponent=2) # Now, square() only needs the base print(square(5)) # Output: 25 print(square(10)) # Output: 100
Hier erstellt „partial“ eine neue Funktion quadrat, die immer Exponent=2 verwendet.
Angenommen, Sie haben eine Funktion mit mehreren Argumenten und rufen sie oft mit einigen festen Werten auf.
def greet(greeting, name): return f"{greeting}, {name}!" # Fix the greeting say_hello = partial(greet, greeting="Hello") say_goodbye = partial(greet, greeting="Goodbye") print(say_hello("Alice")) # Output: Hello, Alice! print(say_goodbye("Alice")) # Output: Goodbye, Alice!
Sie können „partial“ verwenden, um eine Funktion für Operationen wie „map“ anzupassen.
def multiply(x, y): return x * y # Fix y = 10 multiply_by_10 = partial(multiply, y=10) # Use in a map numbers = [1, 2, 3, 4] result = map(multiply_by_10, numbers) print(list(result)) # Output: [10, 20, 30, 40]
Partial funktioniert nahtlos mit Funktionen, die bereits über Standardargumente verfügen.
def add(a, b=10): return a + b # Fix b to 20 add_with_20 = partial(add, b=20) print(add_with_20(5)) # Output: 25
Sie können Partial mit Bibliotheken wie Pandas verwenden, um sich wiederholende Vorgänge zu vereinfachen.
from functools import partial
partial(func, *args, **kwargs)
def power(base, exponent): return base ** exponent # Create a square function by fixing exponent = 2 square = partial(power, exponent=2) # Now, square() only needs the base print(square(5)) # Output: 25 print(square(10)) # Output: 100
def greet(greeting, name): return f"{greeting}, {name}!" # Fix the greeting say_hello = partial(greet, greeting="Hello") say_goodbye = partial(greet, greeting="Goodbye") print(say_hello("Alice")) # Output: Hello, Alice! print(say_goodbye("Alice")) # Output: Goodbye, Alice!
Die Verwendung von functools.partial kann Ihren Code vereinfachen und bereinigen, insbesondere wenn es um sich wiederholende Funktionsaufrufe oder Funktionen höherer Ordnung geht. Lassen Sie mich wissen, wenn Sie weitere Beispiele oder erweiterte Anwendungsfälle wünschen!
Das obige ist der detaillierte Inhalt vonWas ist „functools.partial' in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!