Heim > Backend-Entwicklung > Python-Tutorial > Wie werden Argumente in Python-Funktionsaufrufen * und entpackt?

Wie werden Argumente in Python-Funktionsaufrufen * und entpackt?

DDD
Freigeben: 2024-12-22 09:01:13
Original
416 Leute haben es durchsucht

How Do * and  Unpack Arguments in Python Function Calls?

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
Nach dem Login kopieren

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)
Nach dem Login kopieren

Dies entspricht dem Schreiben:

s = add(1, 2)
Nach dem Login kopieren

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)
Nach dem Login kopieren

Dies entspricht:

s = add(a=1, b=2)
Nach dem Login kopieren

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
Nach dem Login kopieren

Und zwei Sätzen von Werten:

values1 = (1, 2)
values2 = { 'c': 10, 'd': 15 }
Nach dem Login kopieren

Wir können diese Werte wie folgt entpacken:

s = add(*values1, **values2)
Nach dem Login kopieren

Das ist entspricht:

s = sum(1, 2, c=10, d=15)
Nach dem Login kopieren

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
Nach dem Login kopieren

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!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage