Heim > Backend-Entwicklung > Python-Tutorial > Wie entpacken *- und Operatoren Argumente in Python-Funktionsaufrufen?

Wie entpacken *- und Operatoren Argumente in Python-Funktionsaufrufen?

DDD
Freigeben: 2024-12-29 18:31:11
Original
554 Leute haben es durchsucht

How Do * and  Operators Unpack Arguments in Python Function Calls?

Entpacken in Funktionsaufrufen mit den Operatoren und *

Pythons Operatoren und * spielen eine entscheidende Rolle Rollen in Funktionsaufrufen, was ein bequemes Entpacken von Sequenzen, Sammlungen usw. ermöglicht Wörterbücher.

Sequenzen und Sammlungen mit * (Einzelstern) entpacken

Der Operator * (Einzelstern) entpackt eine Sequenz oder Sammlung in Positionsargumente. Betrachten Sie beispielsweise den folgenden Code:

def add(a, b):
    return a + b

values = (1, 2)
s = add(*values)  # unpacks values into individual arguments
Nach dem Login kopieren

Dies entspricht dem Schreiben:

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

Wörterbücher mit (Doppelstern)**

entpacken

Der Operator ** (Doppelstern) führt eine ähnliche Operation für Wörterbücher durch und extrahiert benannte Argumente. Zum Beispiel gegeben:

values = {'a': 1, 'b': 2}
s = add(**values)  # unpacks values as keyword arguments
Nach dem Login kopieren

Dies entspricht:

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

Operatoren für das Entpacken von Funktionsaufrufen kombinieren

Beides und *-Operatoren können zusammen in einem Funktionsaufruf verwendet werden. Zum Beispiel gegeben:

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

values1 = (1, 2)
values2 = {'c': 10, 'd': 15}
s = add(*values1, **values2)  # combines sequence and dictionary unpacking
Nach dem Login kopieren

Dies entspricht:

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

Auswirkungen auf die Leistung

Entpackvorgänge mit und * verursacht durch die Erstellung von Tupeln und Wörterbüchern einen gewissen Mehraufwand. Bei kleinen Datensätzen sind die Auswirkungen auf die Leistung jedoch im Allgemeinen vernachlässigbar. Erwägen Sie bei größeren Datensätzen alternative Methoden zur Effizienzsteigerung, z. B. die Verwendung von Tupel- und Wörterbuchverständnis.

Zusätzliche Verwendungen in Funktionsparametern

  • und können kann auch verwendet werden, um Argumente variabler Länge in Funktionsparametern zu akzeptieren. Siehe die ergänzende Frage „Was bewirken (Doppelstern/Sternchen) und * (Stern/Sternchen) für Parameter?“ für weitere Informationen.

Das obige ist der detaillierte Inhalt vonWie entpacken *- und Operatoren Argumente in Python-Funktionsaufrufen?. 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