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.
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.
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