Funktionen, die Schlüssel-Wert-Paare variabler Länge als Argumente akzeptieren
Funktionen, die Parameter in Form von Schlüssel-Wert-Paaren variabler Länge annehmen, können in Python definiert werden. Dies ermöglicht dynamischere und vielseitigere Funktionen, die eine Vielzahl von Eingaben verarbeiten können. Wenn eine Funktion in der Lage sein muss, beliebige oder optionale Parameter zu verarbeiten, wird diese Funktion häufig verwendet. Erfahren Sie in diesem technischen Artikel, wie Sie die Syntax **kwargs und ** verwenden, um einer Funktion eine variable Anzahl von Argumenten zu senden.
Syntax
Die **kwargs-Syntax gibt an, dass die Funktion eine beliebige Anzahl von Schlüsselwortargumenten akzeptiert, die als Wörterbuch übergeben werden.
def function_name(**kwargs):
# code block
Algorithmus
Definieren Sie die Funktion mit dem Parameter **kwargs in der Funktionssignatur.
Verwenden Sie die **-Syntax, um das Wörterbuch in benannte Variablen zu entpacken.
Verwenden Sie eine for-Schleife, um die Elemente im kwargs-Wörterbuch zu durchlaufen.
-
Greifen Sie über den Schlüsselnamen auf die Werte zu.
Beispiel
def print_values(**kwargs):
for key, value in kwargs.items():
print(key, value)
print_values(a=1, b=2, c=3)
Ausgabe
a 1
b 2
c 3
Beispiel
def concatenate(**kwargs):
result = ""
for key, value in kwargs.items():
result += str(value)
return result
print(concatenate(a="Hello ", b="World ", c="!"))
Ausgabe
Hello World !
Beispiel
def calculate_average(**kwargs):
values = [value for value in kwargs.values() if isinstance(value, int) or isinstance(value, float)]
return sum(values) / len(values)
print(calculate_average(a=1, b=2.5, c="hello"))
Ausgabe
1.75
Erläuterung
Die Funktion „Werte drucken“ verwendet eine for-Schleife, um eine beliebige Anzahl von Schlüssel-Wert-Paaren anzuzeigen, die ihr bereitgestellt werden, während sie die Methode items() des Wörterbuchs durchläuft. Bevor alle als Schlüssel-Wert-Paare übergebenen Elemente verkettet werden, gibt die concatenate-Methode jeden Wert in eine Zeichenfolge zurück. Bei der Berechnung des Durchschnitts aller als Schlüssel-Wert-Paare bereitgestellten Daten berücksichtigt die resultierende Durchschnittsfunktion ausschließlich numerische Werte. Beachten Sie außerdem, dass Sie die Funktion isinstance() sehen müssen, um festzustellen, ob ein Wert eine Zahl ist.
Was wäre, wenn wir eine Funktion erstellen möchten, die nicht nur den Namen, das Alter und den Standort einer Person akzeptiert, sondern auch zusätzliche Schlüssel-Wert-Paar-Argumente als optionale Argumente akzeptiert −
def person_info(name, age, location, **kwargs):
print("Name:", name)
print("Age:", age)
print("Location:", location)
for key, value in kwargs.items():
print(key.capitalize() + ":", value)
person_info("Alice", 25, "New York", occupation="Engineer", hobbies=["Reading", "Hiking"])
Ausgabe
Name: Alice
Age: 25
Location: New York
Occupation: Engineer
Hobbies: ['Reading', 'Hiking']
Name, Alter und Standort sind in diesem Beispiel die drei obligatorischen Parameter. Darüber hinaus können beliebig viele weitere optionale Schlüssel-Wert-Paare angegeben werden. Wir führen die Funktion items() des kwargs-Wörterbuchs aus und verwenden eine for-Schleife, um die Schlüssel-Wert-Paare vorzubereiten, bevor wir sie ausdrucken.
Anwendungen
APIs erstellen, die sich ändern können – Clients können zusätzliche Informationen übergeben, mit denen die Funktion auf verschiedene Weise umgehen kann, indem sie Schlüssel-Wert-Paarkonflikte variabler Länge in die Programmierschnittstelle der Funktion einbeziehen.
Verwalten nicht wesentlicher Argumente – Optionale Argumente können mithilfe von Schlüssel-Wert-Paarargumenten variabler Länge erstellt werden, und Funktionsdefinitionen können sowohl obligatorische als auch optionale Argumente enthalten. Daher ist es denkbar, die Fähigkeit nur mit den entscheidenden Grenzen oder mit einer ganzen Reihe zusätzlicher Grenzen aufzurufen.
Parsing von Argumenten über die Befehlszeile – Die Ordnungsliniengrenzen eines Programms oder Inhalts können mithilfe des zugrunde liegenden argparse-Moduls von Python charakterisiert werden. Das Modul erkennt Schlüssel-Wert-Paargrenzen unterschiedlicher Länge und ermöglicht es dem Client, zusätzliche Konflikte anzugeben.
Abschluss
Da sie Methoden zum Entwickeln von Funktionen bereitstellen, die eine Vielzahl von Eingaben verarbeiten können und einfach zu verwenden sind, ermöglichen Pythons starke Schlüssel-Wert-Paar-Parameter variabler Länge die Entwicklung von Funktionen, die anpassungsfähiger und dynamischer sind. Durch die Nutzung dieser Funktion können Sie das Benutzererlebnis sowie die Robustheit und Anpassungsfähigkeit Ihres Codes verbessern.