Heim >Backend-Entwicklung >Python-Tutorial >Wie werden Argumente in Python-Funktionsaufrufen * und entpackt?
Argumente mit und in Python-Funktionsaufrufen entpacken*
In Python-Funktionsaufrufen ist das Sternchen ( ) und Doppel-Sternchen-Operatoren (*) spielen eine wichtige Rolle beim Entpacken von Sequenzen und Wörterbüchern in Positions- oder benannte Operatoren Argumente.
Einzelner Stern (*) Entpacken:
Der einzelne Sternchenoperator (*) entpackt eine Sequenz oder Sammlung in Positionsargumente. Betrachten Sie die folgende Funktion:
def add(a, b): return a + b
Gegeben ein Tupel mit Werten = (1, 2), können wir das Tupel entpacken und seine Elemente mit dem *-Operator an die Add-Funktion übergeben:
s = add(*values)
Dies entspricht dem Schreiben:
s = add(1, 2)
Doppelstern () Auspacken:**
Der doppelte Sternchenoperator (**) folgt einem ähnlichen Prinzip, arbeitet jedoch mit Wörterbüchern. Es entpackt die Schlüssel-Wert-Paare eines Wörterbuchs in benannte Argumente:
values = { 'a': 1, 'b': 2 } s = add(**values)
Dies entspricht:
s = add(a=1, b=2)
Kombiniertes Entpacken:
Beide Operatoren können gleichzeitig in einem einzigen Funktionsaufruf verwendet werden. Zum Beispiel mit der Funktion:
def sum(a, b, c, d): return a + b + c + d
Und zwei Sätzen von Werten:
values1 = (1, 2) values2 = { 'c': 10, 'd': 15 }
Wir können diese Werte wie folgt entpacken:
s = add(*values1, **values2)
Das ist entspricht:
s = sum(1, 2, c=10, d=15)
Leistung Auswirkungen:
Die Verwendung der Entpackoperatoren und * hat im Allgemeinen nur minimale Auswirkungen auf die Leistung. Wenn jedoch die zu entpackende Sequenz oder das zu entpackende Wörterbuch groß ist, kann beim Entpacken ein zusätzlicher Aufwand entstehen. Dies ist für die meisten praktischen Szenarien vernachlässigbar.
Äquivalente Methode:
Alternativ zur Verwendung der Entpackoperatoren können Sie auch die Syntax *args und **kwargs verwenden bzw.:
def add(*args, **kwargs): s = 0 for arg in args: s += arg for key, value in kwargs.items(): s += value
Letztendlich ist die Wahl zwischen der Verwendung der Entpackoperatoren oder *args/**kwargs hängt von Ihrem Codestil und Ihren Vorlieben ab.
Das obige ist der detaillierte Inhalt vonWie werden Argumente in Python-Funktionsaufrufen * und entpackt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!