Python Kwargs

Mit Python *args und **kwargs können Sie eine variable Anzahl von Argumenten an eine Funktion ubergeben. *args-Argumente haben keine Schlusselwörter, während **kwargs-Argumente jeweils mit einem Schlusselwort verknupft sind.

Traditionell mussen Sie beim Arbeiten mit Funktionen in Python die Argumente der Funktion direkt angeben akzeptiert.

In einigen Fällen, in denen Sie in Zukunft möglicherweise mehr Argumente akzeptieren möchten, ist es unpraktisch, alle Parameter, die Sie mit einer Funktion verwenden möchten, direkt anzugeben.

Hier kommen die Python-Schlusselwörter *args und **kwargs ins Spiel. Mit diesen Schlusselwörtern können Sie einer Funktion eine undefinierte Anzahl von Argumenten ubergeben.

In diesem Tutorial werden anhand von Beispielen die Grundlagen der Schlusselwörter *args und **kwargs in Python und deren Vergleich erläutert.

Python *args

Die Python-Methode *args repräsentiert eine Vielzahl von Argumenten. Damit können Sie Argumente an eine Funktion ubergeben, wenn Sie sich nicht sicher sind, wie viele Argumente Sie ubergeben möchten.

Der Begriff "Args‚" ist ein Platzhalter. In Ihrer Funktion k√∂nnen Sie den Namen von "args‚" mit beliebigem Wert. Sie k√∂nnten "Zahlen‚" um eine Liste von Zahlen oder "Studenten‚" einen Studenten vertreten‚Äô Details.

Die Syntax fur die *args-Methode lautet:

81 % der Teilnehmer gaben an, dass sie sich nach dem Besuch eines Bootcamps hinsichtlich ihrer Berufsaussichten im Tech-Bereich sicherer fuhlten. Lassen Sie sich noch heute in ein Bootcamp einweisen.

Der durchschnittliche Bootcamp-Absolvent verbrachte weniger als sechs Monate im Karriereubergang, vom Beginn eines Bootcamps bis zur Suche nach seinem ersten Job.

Diese Funktion akzeptiert eine variable Zahl von Argumenten. Wir könnten also null Argumente, ein Argument, zwei Argumente usw. ubergeben. Unsere Funktion gibt jedes Argument, das wir an unsere Funktion ubergeben, an die Konsole aus.

Der Wert nach dem Sternchen "Zahlen‚" stellt unsere Argumente dar.

Das Schlusselwort args ist nutzlich, wenn Sie mathematische Operationen durchfuhren, beispielsweise wenn Sie eine variable Anzahl von Zahlen addieren möchten.

*args Python-Beispiel

Lass uns ein Programm schreiben, das die Werte mehrerer Argumente addiert. Auf diese Weise können wir eine mathematische Summe erstellen, ohne fur jeden Wert, den wir hinzufugen möchten, ein Pluszeichen verwenden zu mussen.

Hier ist ein Beispiel fur eine Funktion, die mehrere Argumente addieren kann:

Unser Code gibt Folgendes zuruck:

Zuerst deklarieren wir eine Python-Funktion namens addNumbers(), das den Code fur unser Zahlenaddierprogramm enthält. Fur diese Funktion ist ein Argument angegeben: *args.

Das Schlusselwort *args wird verwendet, um eine variable Anzahl potenzieller Argumente darzustellen, die an die Funktion ubergeben werden könnten.

Dann deklarieren wir eine Python-Variable mit dem Namen total, die die Gesamtzahl verfolgt, die wir hinzufugen. Anfänglich ist diese Variable auf 0 gesetzt.

Wir verwenden eine for-Schleife, um jedes Argument im Schlusselwort args durchzugehen, und wir addieren jede Zahl zu unserer Summe. Beachten Sie, dass Sie beim Verweisen auf die in *args gespeicherten Argumente den Befehl "args‚" Stichwort. Als n√§chstes drucken wir die Gesamtzahl aus, die unser Programm berechnet hat.

In unserem Hauptprogramm rufen wir die Methode addNumbers() zweimal auf. Wenn wir die Funktion zum ersten Mal aufrufen, geben wir drei Zahlen an, die unsere Funktion addieren soll. Wenn wir die Funktion das nächste Mal aufrufen, geben wir vier Zahlen an, die unsere Funktion addieren soll.

Da wir *args verwendet haben, können wir eine unbegrenzte Anzahl von Argumenten an unsere Funktion senden. Unser Programm funktioniert, egal wie viele Argumente wir ubergeben.

Python **kwargs

Das Schlusselwort **kwargs repräsentiert eine beliebige Anzahl von Argumenten, die an eine Funktion ubergeben werden. **kwargs-Schlusselwörter werden in einem Wörterbuch gespeichert. Sie können auf jedes Element zugreifen, indem Sie auf das Schlusselwort verweisen, das Sie einem Argument bei der Übergabe des Arguments zugeordnet haben.

Die Syntax fur **kwargs ist:

Mit diesem Code k√∂nnen wir eine variable Anzahl von Schlusselwortargumenten an unsere Funktion ubergeben. Der Name **kwargs ist nur ein Ersatz. Sie k√∂nnen "kwargs‚" mit einem beliebigen Begriff.

Wir verwenden den Namen nach dem Sternchen als Label fur unsere Schlusselwortargumente. In diesem Fall lautet unser Label "record‚". Werte in einer **kwargs-Methode werden in Schlussel-Wert-Paaren gespeichert. Aus diesem Grund mussen wir items() verwenden, um alle Argumente zu durchlaufen, die wir an unsere Funktion ubergeben haben.

**kwargs-Python-Beispiel

Lassen Sie uns ein grundlegendes Beispiel einer Funktion mit **kwargs durchgehen, um zu veranschaulichen, wie das Schlusselwort funktioniert.

Angenommen, wir erstellen ein Programm, das Informationen uber die Bestellung eines Kunden in einem Café anzeigt. Wir m√∂chten die Bestellinformationen des Kunden an eine Funktion weitergeben, die die Daten dann an die Konsole ausdruckt eine Funktion erstellen:

"Karrierekarma trat in mein Leben ein, als ich es am dringendsten brauchte und half mir schnell bei einem Bootcamp. Zwei Monate nach meinem Abschluss habe ich meinen Traumjob gefunden, der meinen Werten und Lebenszielen entspricht!"

Venus, Software Engineer bei Rockbot

Unser Code gibt zuruck:

Zuerst deklarieren wir eine Funktion namens printOrder() , die das **kwargs-Schlusselwort verwendet, um eine variable Anzahl von Argumenten zu akzeptieren. Diese Funktion gibt den Wert von "kwargs‚" aus (der alle an unsere Funktion ubergebenen Schlusselwortargumente speichert).

Dann rufen wir unsere Funktion auf und ubergeben drei Argumente: Kaffee, Preis und Größe Übergeben wir diese Werte, werden sie als Wörterbuch an unsere Funktion gesendet.

Unser Code hat ein Python-Wörterbuch mit drei von uns angegebenen Argumenten zuruckgegeben , neben ihren Werten.Wenn wir wollten, hätten wir noch mehr oder noch weniger Argumente ubergeben können, denn **kwargs steht fur a variable Anzahl von Argumenten.

Da unsere Kwargs in einem Wörterbuch gespeichert sind, können wir wie auf jedes Python-Wörterbuch einzeln auf ihre Werte zugreifen.

Unseren Code verbessern

Nun, angenommen wir wollten die Details zur Kaffeebestellung strukturierter ausdrucken. Wir könnten dies mit diesem Code tun:

Unser Code gibt Folgendes zuruck:

Lassen Sie uns unseren Code aufschlusseln. Zuerst deklarieren wir eine Funktion namens printOrder(), die das Schlusselwort **kwargs verwendet, um Schlusselwörter zu akzeptieren. Dann haben wir eine for-Schleife erstellt, die jedes Element in unserem Kwargs-Wörterbuch durchläuft.

Wir verwenden die Python-Methode Dictionary items(), um auf jeden Schlussel und Wert in unserem Wörterbuch zuzugreifen.

Diese for-Schleife gibt den Namen jedes Schlussels in unserem W√∂rterbuch aus (Kaffee, Preis und Gr√∂√üe). Dann wird der Code ausgegeben " ist gleich ‚". Schlie√ülich gibt unser Code den Wert aus, der jedem Schlussel entspricht ("Mocha‚", 2,90 bzw. "Large‚").

Wenn wir vier oder zwei Schlusselwörter an unser Programm ubergeben wollten, könnten wir das. Dies liegt daran, dass **kwargs mit Schlusselwörtern versehene Argumentlisten mit variabler Länge wie *args unterstutzt.

Python *args vs. **kwargs

Die mit **kwargs an eine Funktion gesendeten Argumente werden in einer Wörterbuchstruktur gespeichert.*args sendet eine Liste von Argumenten an eine Funktion.

Außerdem mussen Sie Argumente mit **kwargs senden. Sie mussen jedem der Werte, die Sie an Ihre Funktion senden möchten, Schlusselwörter zuweisen. Sie mussen keine Schlusselwörter angeben, wenn Sie *args verwenden.

Ein einzelner Stern steht fur *args, w√§hrend **kwargs einen doppelten Stern verwendet. Dies ist ein wichtiger Unterschied, da sowohl "args‚" als auch "kwargs‚" Platzhalter sind. Sie k√∂nnen diese W√∂rter durch jeden beliebigen Wert ersetzen.

Wie man Python-Argumente anordnet

Argumente in einer Python-Funktion mussen in einer bestimmten Reihenfolge erscheinen. Diese Reihenfolge ist wie folgt:

  • Formale Argumente
  • *args
  • Keyword-Argumente
  • **kwargs

Wenn Sie also sowohl mit *args als auch mit **kwargs arbeiten, wurden Sie diesen Code verwenden:

Wenn Sie außerdem Standardwerte fur bestimmte auftretende Argumente festlegen möchten, können Sie dies verwenden code:

Diese Funktion erwartet ein Argument namens Kaffee und der Standardwert jedes Arguments namens Kaffee-Bestellung ist Espresso. Sie können mit dieser Funktion jedoch beliebig viele Argumente angeben, da *args und **kwargs verwendet werden.



Schlussfolgerung

Mit den Schlusselwörtern *args und **kwargs können Sie eine variable Anzahl von Argumenten an eine Python-Funktion ubergeben. Das Schlusselwort *args sendet eine Liste von Werten an eine Funktion. **kwargs sendet ein Wörterbuch mit Werten, die mit Schlusselwörtern verknupft sind, an eine Funktion.

Beide dieser Schlusselwörter bringen mehr Flexibilität in Ihren Code. Dies liegt daran, dass Sie beim Schreiben einer Funktion nicht im Voraus eine bestimmte Anzahl von Argumenten angeben mussen.

Um die besten Python-Kurse und Lernressourcen zu entdecken, lesen Sie unsere Anleitung zum Erlernen von Python.