„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie packen einzelne und doppelte Sternchen (*) Argumente in Python -Funktionen aus?

Wie packen einzelne und doppelte Sternchen (*) Argumente in Python -Funktionen aus?

Gepostet am 2025-02-26
Durchsuche:966

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

Auspacken von Argumenten in Python mit und (double star/sternisk) *

in Python, The und * Operatoren spielen eine entscheidende Rolle beim Auspacken von Argumenten beim Anruf Funktionen.

einzelner Stern *:
Der einzelne Stern ( *) packt eine Sequenz oder Sammlung in Positionsargumente aus. Betrachten Sie beispielsweise die Funktion:

def add(a, b):
    return a   b

Der folgende Code verwendet *, um die Tuple -Werte auszupacken:

values = (1, 2)
s = add(*values)

Dies entspricht dem Schreiben:

s = add(1, 2)

double star **:
Der Double Star (**) führt eine ähnliche Operation für Wörterbücher aus und liefert Werte für benannte Argumente. Betrachten Sie die Funktion:

def sum(a, b, c, d):
    return a   b   c   d

das Wörterbuchwerte entpackt. s = add (** values2)

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

s = sum (a = 1, b = 2, c = 10, d = 15)

s = sum(a=1, b=2, c=10, d=15)
Kombination von

und : * beide und
* können gleichzeitig im der verwendet werden Gleicher Funktionsaufruf. Zum Beispiel: Werte1 = (1, 2) values2 = {'c': 10, 'd': 15} s = add (*values1, ** values2)

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

s = sum (1, 2, c = 10, d = 15)

s = sum(1, 2, c=10, d=15)
Parameterpackung:

zusätzlich zum Auspacken von Argumenten, und
* können auch für den Parameterpacken verwendet werden In Funktionsdefinitionen.

ein mit * gekennzeichneter Parameter empfängt eine beliebige Anzahl von Positionsargumenten als Tupel.
  • Ein Parameter, der mit ** gekennzeichnet ist, empfängt alle Schlüsselwortargumente als Wörterbuch. ]
  • zum Beispiel:
def Add (*Werte): # ... Def get_a (** Werte): # ...

def add(*values):
    # ...

def get_a(**values):
    # ...

Die Performance -Implikationen von und * sind im Allgemeinen minimal. Der Auspackbetrieb beinhaltet minimale Gemeinkosten und wirkt sich nicht auf die Effizienz der Funktion selbst aus. Übermäßiges Auspacken kann jedoch den Code weniger lesbar und wartbar machen.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3