* args und ** kwargs in Python
In Python können wir eine variable Anzahl von Argumenten mithilfe spezieller Symbole an eine Funktion übergeben. Es gibt zwei spezielle Symbole:
Spezielle Symbole Zum Übergeben von Argumenten: -
1.) * args (Nicht-Schlüsselwort-Argumente)
2.) ** kwargs (Schlüsselwortargumente)
"Wir verwenden * args und ** kwargs als Argument, wenn wir keinen Zweifel an der Anzahl der Argumente haben, die wir in einer Funktion übergeben sollten."
1.) * args
Die spezielle Syntax * args in Funktionsdefinitionen in Python wird verwendet, um eine variable Anzahl von Argumenten an eine Funktion zu übergeben. Es wird verwendet, um eine nicht schlüsselwortgesteuerte Argumentliste mit variabler Länge zu übergeben.
- Die Syntax besteht darin, das Symbol * zu verwenden, um eine variable Anzahl von Argumenten aufzunehmen. Konventionell wird es oft mit dem Wort args verwendet.
- Mit * args können Sie mehr Argumente aufnehmen als die Anzahl der zuvor definierten formalen Argumente. Mit * args können beliebig viele zusätzliche Argumente an Ihre aktuellen formalen Parameter angehängt werden (einschließlich null zusätzlicher Argumente).
- Zum Beispiel: Wir möchten eine Multiplikationsfunktion erstellen, die eine beliebige Anzahl von Argumenten akzeptiert und alle miteinander multiplizieren kann. Dies kann mit * args erfolgen.
- Mit dem * wird die Variable, die wir mit dem * verknüpfen, zu einer iterierbaren Bedeutung. Dies bedeutet, dass Sie beispielsweise darüber iterieren, einige Funktionen höherer Ordnung wie Map und Filter ausführen usw. können.
def
myFun(
*
argv):
for
arg
in
argv:
(arg)
myFun(
'Hello'
,
'Welcome'
,
'to'
,
'GeeksforGeeks'
)
Hallo Herzlich willkommen zu GeeksforGeeks
def
myFun(arg1,
*
argv):
(
"First argument :"
, arg1)
for
arg
in
argv:
(
"Next argument through *argv :"
, arg)
myFun(
'Hello'
,
'Welcome'
,
'to'
,
'GeeksforGeeks'
)
Erstes Argument: Hallo Nächstes Argument durch * argv: Willkommen Nächstes Argument durch * argv: to Nächstes Argument durch * argv: GeeksforGeeks
2.) ** kwargs
Die spezielle Syntax ** kwargs in Funktionsdefinitionen in Python wird verwendet, um eine Argumentliste mit Schlüsselwörtern und variabler Länge zu übergeben. Wir verwenden den Namen kwargs mit dem Doppelstern. Der Grund dafür ist, dass der Doppelstern es uns ermöglicht, Schlüsselwortargumente (und eine beliebige Anzahl davon) durchzugehen.
- In einem Schlüsselwortargument geben Sie der Variablen einen Namen, wenn Sie sie an die Funktion übergeben.
- Man kann sich die kwargs als ein Wörterbuch vorstellen , das jedes Schlüsselwort dem Wert zuordnet, den wir daneben übergeben. Deshalb scheint es beim Durchlaufen der Kwargs keine Reihenfolge zu geben, in der sie ausgedruckt wurden.
Beispiel für die Verwendung von ** kwargs:
def
myFun(
*
*
kwargs):
for
key, value
in
kwargs.items():
(
"%s == %s"
%
(key, value))
myFun(first
=
'Geeks'
, mid
=
'for'
, last
=
'Geeks'
)
last == Geeks mid == für first == Geeks
def
myFun(arg1,
*
*
kwargs):
for
key, value
in
kwargs.items():
(
"%s == %s"
%
(key, value))
myFun(
"Hi"
, first
=
'Geeks'
, mid
=
'for'
, last
=
'Geeks'
)
last == Geeks mid == für first == Geeks
Verwenden von * args und ** kwargs zum Aufrufen einer Funktion
Beispiel:
def
myFun(arg1, arg2, arg3):
(
"arg1:"
, arg1)
(
"arg2:"
, arg2)
(
"arg3:"
, arg3)
args
=
(
"Geeks"
,
"for"
,
"Geeks"
)
myFun(
*
args)
kwargs
=
{
"arg1"
:
"Geeks"
,
"arg2"
:
"for"
,
"arg3"
:
"Geeks"
}
myFun(
*
*
kwargs)
arg1: Geeks arg2: für arg3: Geeks arg1: Geeks arg2: für arg3: Geeks
Verwenden von * args und ** kwargs in derselben Zeile, um eine Funktion aufzurufen
Beispiel:
def
myFun(
*
args,
*
*
kwargs):
(
"args: "
, args)
(
"kwargs: "
, kwargs)
myFun(
'geeks'
,
'for'
,
'geeks'
,first
=
"Geeks"
,mid
=
"for"
,last
=
"Geeks"
)
Argumente: ('Geeks', 'für', 'Geeks') kwargs {'first': 'Geeks', 'mid': 'for', 'last': 'Geeks'}
Dieser Artikel wurde von Kishlay Verma verfasst . Wenn Ihnen GeeksforGeeks gefällt und Sie einen Beitrag leisten möchten, können Sie auch einen Artikel mit Contrib.geeksforgeeks.org schreiben oder Ihren Artikel an Contribute@geeksforgeeks.org senden . Sehen Sie sich Ihren Artikel auf der GeeksforGeeks-Hauptseite an und helfen Sie anderen Geeks.
Bitte schreiben Sie Kommentare, wenn Sie etwas Falsches finden oder weitere Informationen zu dem oben diskutierten Thema teilen möchten.