Heim > Backend-Entwicklung > Python-Tutorial > Wie gehen einfache und doppelte Sternoperatoren (*) und () mit Variablenargumenten in Python-Funktionsdefinitionen um?

Wie gehen einfache und doppelte Sternoperatoren (*) und () mit Variablenargumenten in Python-Funktionsdefinitionen um?

Linda Hamilton
Freigeben: 2024-12-24 16:57:10
Original
777 Leute haben es durchsucht

How Do Single and Double Star Operators (*) and () Handle Variable Arguments in Python Function Definitions?

Parameter-Entpacken: und in Funktionsdefinitionen*

Funktionsdefinitionen in Python können den (Stern) nutzen ) und * (Doppelstern)-Operatoren, um eine unterschiedliche Anzahl von zu verarbeiten Argumente.

Einzelsternoperator (*)

Der -Operator (auch bekannt als „var-args“ oder „splat“) sammelt alle übergebenen Positionsargumente zur Funktion in ein Tupel namens args. In der folgenden Definition heißt es zum Beispiel:

def foo(x, y, *args):
    pass
Nach dem Login kopieren

Wenn args mit foo(1, 2, 3, 4, 5) aufgerufen wird, wird das Tupel args verwendet wird (3, 4, 5) enthalten.

Double Star Operator ()**

Der -Operator (auch bekannt als „var-kwargs“ oder „keyword splat“) erfasst alle Schlüsselwortargumente als Wörterbuch mit dem Namen kwargs**. In der folgenden Definition:

def bar(x, y, **kwargs):
    pass
Nach dem Login kopieren

Wenn bar mit bar(1, 2, name='Alice', age=30) aufgerufen wird, werden die kwargs aufgerufen Das Wörterbuch enthält {'name': 'Alice', 'age': 30}.

Mixing Standard und variable Argumente

Funktionsdefinitionen können normale Argumente mit variablen Argumenten kombinieren, indem *:

def foo(kind, *args, bar=None, **kwargs):
    pass
Nach dem Login kopieren

Beim Aufruf mit foo(123, 'a', 'b', apple= 'red'), die Variablen 'kind', 'args', 'bar' und 'kwargs' enthält:

  • kind = 123
  • args = ('a', 'b')
  • bar = None
  • kwargs = {'apple': 'red'🎜>

Argumentlisten entpacken

*: kann auch zum Entpacken von Argumentlisten beim Aufruf von Funktionen verwendet werden:

def foo(bar, lee):
    pass

baz = [1, 2]

foo(*baz) # Unpacks baz into [1, 2] for bar and lee
Nach dem Login kopieren

Erweitertes iterierbares Entpacken (Python 3)

In Python 3, *l kann auf der linken Seite einer Zuweisung verwendet werden, um Iterables in mehrere Variablen zu entpacken:

first, *rest = [1, 2, 3, 4] # first = 1, rest = [2, 3, 4]
Nach dem Login kopieren

Nur-Schlüsselwort-Argumente (Python 3)

Python 3 führt

nur Schlüsselwortargumente ein, wobei nach *: nur Schlüsselwortargumente stehen erlaubt:

Das obige ist der detaillierte Inhalt vonWie gehen einfache und doppelte Sternoperatoren (*) und () mit Variablenargumenten in Python-Funktionsdefinitionen um?. 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage