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:  
        print (arg) 
    
myFun('Hello', 'Welcome', 'to', 'GeeksforGeeks'
Ausgabe: 
Hallo
Herzlich willkommen
zu
GeeksforGeeks

 

def myFun(arg1, *argv): 
    print ("First argument :", arg1) 
    for arg in argv: 
        print("Next argument through *argv :", arg) 
  
myFun('Hello', 'Welcome', 'to', 'GeeksforGeeks') 
Ausgabe: 
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(): 
        print ("%s == %s" %(key, value)) 
  
myFun(first ='Geeks', mid ='for', last='Geeks')     
Ausgabe: 
last == Geeks
mid == für
first == Geeks

 

  
def myFun(arg1, **kwargs):  
    for key, value in kwargs.items(): 
        print ("%s == %s" %(key, value)) 
  
myFun("Hi", first ='Geeks', mid ='for', last='Geeks')     
Ausgabe: 
last == Geeks
mid == für
first == Geeks

 

Verwenden von * args und ** kwargs zum Aufrufen einer Funktion

Beispiel:
 

def myFun(arg1, arg2, arg3): 
    print("arg1:", arg1) 
    print("arg2:", arg2) 
    print("arg3:", arg3) 
      
args = ("Geeks", "for", "Geeks") 
myFun(*args) 
  
kwargs = {"arg1" : "Geeks", "arg2" : "for", "arg3" : "Geeks"} 
myFun(**kwargs) 
Ausgabe: 
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): 
    print("args: ", args) 
    print("kwargs: ", kwargs) 
  
  
myFun('geeks','for','geeks',first="Geeks",mid="for",last="Geeks") 
Ausgabe: 
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.