Es gibt drei Arten von Argumenten, die eine Python-Funktion akzeptieren kann: Standard, Variable (*args) und Schlüsselwort (**kwargs). Standardargumente sind die einfachsten, haben aber eine eingeschränkte Funktionalität. Andererseits ermöglichen Ihnen *args und **kwargs, Ihre Funktionen flexibler zu gestalten, indem Sie eine variable Anzahl von Eingaben akzeptieren.

Welche Art der Argumentübergabe Sie wählen, hängt von der Art Ihrer Funktion und Ihrem eigenen bevorzugten Programmierstil ab.

Grundlegende Funktionen in Python

Um zu verstehen, wie die beiden Variablenargumente in Python-Funktionen funktionieren, ist es wichtig zu verstehen, warum sie überhaupt existieren. Eine einfache Funktion deklariert eine feste Anzahl anonymer Argumente wie folgt:

defNachtrag(a, b, c):
Rückkehr a+b+c

Diese Funktion funktioniert gut, aber es gibt Raum für Verbesserungen. Das größte Problem ist, dass es nur zwei Argumente verarbeitet, also nur zwei Zahlen addieren kann. Was ist, wenn Sie zwei oder vier Zahlen hinzufügen möchten? Diese Funktion erlaubt Ihnen dies nicht. Das Übergeben von mehr oder weniger Argumenten als die Funktion akzeptiert, führt zu einem TypeError.

Natürlich könnten Sie weitere Funktionen erstellen, um eine andere Anzahl von Argumenten zu akzeptieren. Aber das ist unpraktisch und lässt sich überhaupt nicht gut skalieren. Sie müssen auch jedes Mal eine neue Funktion erstellen, wenn Sie eine neue Anzahl von Eingaben verarbeiten möchten.

Hier kommen Variablenargumente und Schlüsselwortargumente ins Spiel. Mit *args und **kwargs können Sie flexible Funktionen definieren, die eine variable Anzahl von Eingaben annehmen können.

Was ist * args in Python?

Die Hauptidee hinter *args in Python besteht darin, Ihnen zu ermöglichen, eine variable Anzahl von Eingaben an Ihre Funktion zu übergeben. Dies ist in verschiedenen Anwendungen praktisch. Denken Sie zum Beispiel an ein Taschenrechnerprogramm, bei dem Sie dem Benutzer die Möglichkeit geben möchten, zwei oder mehr Zahlen zu addieren und die Summe zurückzugeben.

Beachten Sie, dass args nur ein Variablenname ist; es ist das *, das wichtig ist. Sie können jeden gültigen Namen für Ihr Variablenargument verwenden, solange Sie das *.

Verwendung von *args

Sie können die Addnum-Funktion ändern, um eine variable Anzahl von Eingaben wie folgt zu akzeptieren:

defNachtrag(* Argumente):
insgesamt = 0

zum Anzahl in Argumente:
Gesamt = Gesamt + Anz

Rückkehr gesamt

Das obige Code-Snippet verwendet eine for-Schleife um die bereitgestellten Eingaben zu durchlaufen.

Sie können dann die addnum-Funktion mit variablen Argumenten aufrufen und sie funktioniert, ohne einen Fehler auszulösen:

drucken(ergänzung(10, 1, 12, 12, 4, 54, 5)) ## gibt 98 zurück
drucken(ergänzung(14, 54, 5)) # gibt 73 zurück
drucken(ergänzung(10, 5)) # gibt 15 zurück

Was ist **kwargs in Python?

Während sowohl *args als auch **kwargs es uns ermöglichen, eine variable Anzahl von Eingaben an Funktionen zu übergeben, ist letzteres spezifisch für Schlüsselwortargumente. Falls Sie es nicht wissen, Schlüsselwortargumente sind nur ausgefallene Namen für Argumente mit einem Namen.

Ein weiteres einzigartiges Merkmal von **kwargs ist, dass Python den Wert als Wörterbuch darstellt.

Verwendung von **kwargs

Wie *args ist das Doppelsternchen das wichtige Bit; Sie können ein beliebiges Wort als Parameternamen verwenden. Hier ist ein Beispiel für die Verwendung von **kwargs in Python:

defwöchentliche_teilnahme(**Wochentage):
total_attendees = 0

zumTeilnehmerinWochentage.Werte():
total_attendees = total_attendees + Teilnehmer

Rückkehr total_attendees

drucken(weekly_attendance (montag = 265, Dienstag = 698, mittwoch = 365, Donnerstag = 463, Freitag = 234)) # gibt 2025 zurück
drucken(weekly_attendance (montag = 265, Freitag = 234)) # gibt 499 zurück
drucken(weekly_attendance (mittwoch = 365, Donnerstag = 463, Freitag = 234)) # gibt 1062 zurück

Das obige Code-Snippet verwendet ebenfalls eine for-Schleife, diesmal jedoch mit Pythons eingebauter values()-Methode. Diese Methode gibt ein Ansichtsobjekt aller Werte im Wörterbuch zurück. Die Methode values() ermöglicht Ihnen dies Schleife durch ein Python-Wörterbuch ohne Ärger.

Verwenden Sie variable Argumente, um Ihre Python-Funktionen flexibel zu gestalten

Funktionsargumente sind praktisch, aber einige Funktionen können davon profitieren, eine variable Anzahl von Argumenten zu akzeptieren. Benannte Schlüsselwortargumente können Ihren Code lesbarer und benutzerfreundlicher machen. Sie sollten die *args- und **kwargs-Argumente von Python annehmen. Sie sind ziemlich einfach zu bedienen und mit ihnen können Sie Ihre Funktionen und Programme flexibler gestalten.

Indem Sie die obigen Schritte und Code-Snippets befolgen, hoffen wir, dass Sie jetzt variable Schlüsselwort- und Nicht-Schlüsselwort-Argumente für Ihre Funktionen verwenden können.