Heim > Backend-Entwicklung > Python-Tutorial > Wie entpacken einfache und doppelte Sternchen (*) Argumente in Python-Funktionen?

Wie entpacken einfache und doppelte Sternchen (*) Argumente in Python-Funktionen?

DDD
Freigeben: 2024-12-20 11:08:09
Original
647 Leute haben es durchsucht

How Do Single and Double Asterisks (*) Unpack Arguments in Python Functions?

Argumente in Python mit und (Doppelstern/Sternchen) entpacken*

In Python ist das und *-Operatoren spielen beim Entpacken von Argumenten beim Aufruf eine entscheidende Rolle Funktionen.

Einzelner Stern *:
Der einzelne Stern (*) entpackt eine Sequenz oder Sammlung in Positionsargumente. Betrachten Sie zum Beispiel die Funktion:

def add(a, b):
    return a + b
Nach dem Login kopieren

Der folgende Code verwendet *, um die Tupelwerte zu entpacken:

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

Dies entspricht dem Schreiben:

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

Doppelstern **:
Der Doppelstern (**) führt eine ähnliche Operation für Wörterbücher durch und stellt Werte für benannte Argumente bereit. Betrachten Sie die Funktion:

def sum(a, b, c, d):
    return a + b + c + d
Nach dem Login kopieren

Das Entpacken der Wörterbuchwerte2 mit ** ergibt Folgendes:

values2 = { 'c': 10, 'd': 15 }
s = add(**values2)
Nach dem Login kopieren

Dies entspricht:

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

Kombination aus und :*
Sowohl als auch * kann gleichzeitig im selben Funktionsaufruf verwendet werden. Zum Beispiel:

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

Dies entspricht:

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

Parameter-Entpacken:
Zusätzlich zum Entpacken von Argumenten, und * kann auch zum Entpacken von Parametern in Funktionsdefinitionen verwendet werden.

  • Ein mit markierter Parameter * empfängt eine beliebige Anzahl von Positionsargumenten als Tupel.
  • Ein mit ** gekennzeichneter Parameter empfängt alle Schlüsselwortargumente als Wörterbuch.

Zum Beispiel:

def add(*values):
    # ...

def get_a(**values):
    # ...
Nach dem Login kopieren

Auswirkungen auf die Leistung:
Die Auswirkungen der Verwendung von und * auf die Leistung sind im Allgemeinen minimal. Der Entpackvorgang erfordert nur minimalen Mehraufwand und hat keinen Einfluss auf die Effizienz der Funktion selbst. Übermäßiges Entpacken kann jedoch dazu führen, dass der Code weniger lesbar und wartbar ist.

Das obige ist der detaillierte Inhalt vonWie entpacken einfache und doppelte Sternchen (*) Argumente in Python-Funktionen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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