Heim >Backend-Entwicklung >Python-Tutorial >Was ist der Unterschied zwischen „*args' und „kwargs' in Python-Funktionsparametern?
Enthüllung der Bedeutung von (Doppelstern) und (Stern) in Funktionsparametern*
In Python Funktion Mit args und *kwargs bezeichnete Parameter dienen als vielseitige Anpassungsmechanismen beliebige Argumente.
Positionsargumente mit *args entpacken
Der Parameter *args sammelt alle Positionsargumente, die über die vordefinierten hinausgehen, in einem Tupel. Zum Beispiel:
def foo(*args): for arg in args: print(arg)
Diese Funktion kann eine beliebige Anzahl von Positionsargumenten akzeptieren, wie zum Beispiel:
foo(1) # Output: 1 foo(1, 2, 3) # Output: 1 2 3
Zusammensetzen von Schlüsselwortargumenten mit kwargs**
Andererseits sammelt **kwargs alle Schlüsselwortargumente in einem Wörterbuch.
def bar(**kwargs): for key, value in kwargs.items(): print(key, value)
Der Aufruf dieser Funktion mit Schlüsselwortargumenten ergibt:
bar(name='John', age=30) # Output: name John, age 30
Zusammenspiel von args und kwargs*
Beide Redewendungen können kombiniert werden, um eine Mischung aus fest und variabel zu ermöglichen Argumente:
def foo(kind, *args, bar=None, **kwargs): print(kind, args, bar, kwargs)
Diese Funktion kann wie folgt aufgerufen werden:
foo(123, 'a', 'b', apple='red') # Output: 123 ('a', 'b') None {'apple': 'red'}
Zusätzliche Anwendungsfälle
def foo(bar, lee): print(bar, lee) baz = [1, 2] foo(*baz) # Output: 1 2
first, *rest = [1, 2, 3, 4] # first = 1 # rest = [2, 3, 4]
def func(arg1, arg2, arg3, *, kwarg1, kwarg2): pass
Diese Funktion erfordert drei Positionsargumente und eine beliebige Anzahl von Schlüsselwortargumenten nach *.
Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen „*args' und „kwargs' in Python-Funktionsparametern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!