Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich Argumente für eine Python-Funktion mit „functools.partial' voreinstellen?
So binden Sie Argumente an eine Python-Funktion
In Python können Situationen auftreten, in denen das Binden von Argumenten an eine Funktion für die spätere Ausführung erforderlich ist ohne dass es weiterer Argumente bedarf. Betrachten Sie das Beispiel:
def add(x, y): return x + y add_5 = magic_function(add, 5) assert add_5(3) == 8
In diesem Szenario müssen wir die magic_function bestimmen, die das Argument 5 an die Add-Funktion binden kann.
Die Lösung liegt in der Verwendung des Moduls functools.partial :
import functools add_5 = functools.partial(add, 5) # Bind '5' as the first argument to 'add' assert add_5(3) == 8 # Call 'add_5' with '3' as the second argument
functools.partial erstellt effektiv ein aufrufbares Objekt, das die ursprüngliche Funktion mit einem voreingestellten Argument umschließt. Dadurch können wir die Funktion später ausführen, ohne das feste Argument explizit anzugeben.
Der folgende Code demonstriert einen äquivalenten Ansatz unter Verwendung eines Lambda-Ausdrucks:
print_hello = lambda *a, **kw: sys.stdout.write("Hello world\n", *a, **kw)
Hier sind die Argumente für print_hello werden so behandelt, als wären sie an sys.stdout.write übergeben worden, was eine flexible Argumentübergabe während der Ausführung ermöglicht.
Das obige ist der detaillierte Inhalt vonWie kann ich Argumente für eine Python-Funktion mit „functools.partial' voreinstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!