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:
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ührtnur 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!