Wenn Sie *args
und/oder **kwargs
als letzte Elemente in der Argumentliste der Funktionsdefinition einfügen, kann diese Funktion eine beliebige Anzahl von Argumenten und/oder Schlüsselwortargumenten akzeptieren.
Zum Beispiel, wenn Sie eine Funktion, die zurückgegeben die Summe aller seiner Argumente, egal wie viele Sie liefern, schreiben wollen könnte man es so schreiben:
def my_sum(*args):
return sum(args)
Es ist wahrscheinlich häufiger verwendet in Objektorientierte Programmierung, wenn Sie eine Funktion überschreiben und die ursprüngliche Funktion mit allen Argumenten aufrufen möchten, die der Benutzer übergibt.
Sie müssen sie nicht wirklich anrufen args
und kwargs
, das ist nur eine Konvention. Es ist die *
und **
, die die Magie machen.
Die offizielle Python-Dokumentation hat a more in-depth look.
Nur ein schlechtes Wortspiel auf Stunden und Kilo - Stunden. – Mostlyharmless
Dieser Artikel kann sehr nützlich für das Verständnis des Themas sein: http://agiliq.com/blog/2012/06/understanding-args-and-kwargs/ –