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
Linda HamiltonOriginal
2024-12-24 16:57:10781Durchsuche

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

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

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

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

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]

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!

Stellungnahme:
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