Python - Beliebige oder Variablenlängige Argumente

Hallo daar, zukünftige Python-Zauberer! Heute werden wir eine aufregende Reise in die Welt der beliebigen Argumente in Python antreten. Keine Sorge, wenn du neu bei der Programmierung bist; ich werde dein freundlicher Guide sein, und wir werden dieses Konzept Schritt für Schritt erkunden. Also, greife zu deinem virtuellen Zauberstab (Tastatur), und lass uns einsteigen!

Python - Arbitrary Arguments

Beliebige Argumente (*args)

Stelle dir vor, du planst eine Party, aber du weißt nicht, wie viele Freunde erscheinen werden. Du möchtest auf jede Anzahl von Gästen vorbereitet sein. Genau das machen beliebige Argumente in Python-Funktionen – sie ermöglichen es dir, eine unbekannte Anzahl von Argumenten zu handhaben!

In Python verwenden wir *args, um beliebige Argumente zu kennzeichnen. Das Sternchen (*) ist hier das magische Symbol, und args ist nur eine Konvention (du könntest jeden Namen verwenden, aber args wird weit verbreitet und erkannt).

Schauen wir uns ein einfaches Beispiel an:

def begrüße_freunde(*args):
for freund in args:
print(f"Hallo, {freund}!")

begrüße_freunde("Alice", "Bob", "Charlie")

In diesem Beispiel kann begrüße_freunde() jede Anzahl von Argumenten akzeptieren. Wenn wir diesen Code ausführen, wird er ausgeben:

Hallo, Alice!
Hallo, Bob!
Hallo, Charlie!

Aber was, wenn wir mehr Freunde hätten? Kein Problem! Wir könnten leicht mehr Namen hinzufügen:

begrüße_freunde("Alice", "Bob", "Charlie", "David", "Eve")

Und unsere Funktion würde gerne alle begrüßen!

Wie *args funktioniert

Wenn du *args in einer Funktionsdefinition verwendest, packt Python alle Argumente in eine Liste. Du kannst dann diese Liste innerhalb deiner Funktion iterieren. Es ist wie ein magischer Beutel, der jede Anzahl von Gegenständen halten kann!

Beispiel für Beliebige Argumente

Lassen Sie uns ein praktischeres Beispiel erstellen. Angenommen, wir möchten den Durchschnitt einer variablen Anzahl von Punkten berechnen:

def berechne_durchschnitt(*args):
if len(args) == 0:
return 0
gesamt = sum(args)
durchschnitt = gesamt / len(args)
return durchschnitt

print(berechne_durchschnitt(85, 90, 78))
print(berechne_durchschnitt(92, 88, 95, 78, 80))

Dies wird ausgeben:

84.33333333333333
86.6

Unsere berechne_durchschnitt()-Funktion kann jede Anzahl von Punkten handhaben. Sie berechnet die Summe mit der eingebauten sum()-Funktion und teilt dann durch die Anzahl der Punkte, um den Durchschnitt zu erhalten.

Erforderliche Argumente mit Beliebigen Argumenten

Manchmal möchtest du vielleicht einige erforderliche Argumente zusammen mit beliebigen Argumenten haben. Keine Sorge! Python hat dich abgedeckt. Du kannst normale Parameter mit *args mischen. Denke nur daran, *args am Ende zu setzen:

def führe_klasse_ein(lehrer, *schüler):
print(f"Hallo, ich bin {lehrer}, und ich werde dein Lehrer sein.")
print("Lassen Sie uns die Schüler einführen:")
for schüler in schüler:
print(f"- {schüler}")

führe_klasse_ein("Herr Johnson", "Alice", "Bob", "Charlie")

Dies wird ausgeben:

Hallo, ich bin Herr Johnson, und ich werde dein Lehrer sein.
Lassen Sie uns die Schüler einführen:
- Alice
- Bob
- Charlie

In diesem Beispiel ist lehrer ein erforderliches Argument, während *schüler jede Anzahl von Schülernamen akzeptieren kann.

Beliebige Schlüsselwortargumente (**kwargs)

Jetzt leveln wir auf! Was, wenn wir Schlüssel-Wert-Paare als Argumente übergeben möchten? Hier kommt **kwargs (Schlüsselwortargumente)! Dies ist wie *args, aber für benannte Argumente.

Hier ist ein einfaches Beispiel:

def drucke_nutzer_info(**kwargs):
for schlüssel, wert in kwargs.items():
print(f"{schlüssel}: {wert}")

drucke_nutzer_info(name="Alice", age=25, city="New York")

Dies wird ausgeben:

name: Alice
age: 25
city: New York

In diesem Fall erstellt **kwargs ein Dictionary, wobei die Schlüssel die Argumentnamen und die Werte die Argumentwerte sind.

Mehrere Argumente mit Beliebigen Schlüsselwortargumenten

Du kannst normale Argumente, *args und **kwargs in einer einzigen Funktion kombinieren. Denke nur daran, die Reihenfolge zu beachten: normale Argumente zuerst, dann *args und schließlich **kwargs.

Hier ist ein Beispiel, das alles zusammenbringt:

def schüler_info(schule, *args, **kwargs):
print(f"Schule: {schule}")
print("Fächer:")
for fach in args:
print(f"- {fach}")
print("Zusätzliche Informationen:")
for schlüssel, wert in kwargs.items():
print(f"{schlüssel}: {wert}")

schüler_info("Python High", "Mathematik", "Wissenschaft", "Geschichte", name="Alice", age=16, klasse="10. Klasse")

Dies wird ausgeben:

Schule: Python High
Fächer:
- Mathematik
- Wissenschaft
- Geschichte
Zusätzliche Informationen:
name: Alice
age: 16
klasse: 10. Klasse

Zusammenfassung der Methoden

Hier ist eine Tabelle, die die von uns besprochenen Methoden zusammenfasst:

Methode Syntax Beschreibung
Beliebige Argumente *args Ermöglicht einer Funktion, jede Anzahl von Positionargumenten zu akzeptieren
Beliebige Schlüsselwortargumente **kwargs Ermöglicht einer Funktion, jede Anzahl von Schlüsselwortargumenten zu akzeptieren
Kombinierte Verwendung def func(regular_args, *args, **kwargs) Kombiniert normale Argumente mit beiden Arten von beliebigen Argumenten

Denke daran, die Kraft der beliebigen Argumente liegt in ihrer Flexibilität. Sie ermöglichen es dir, flexiblere Funktionen zu erstellen, die sich an verschiedene Situationen anpassen können.

Als wir diese magische Reise durch die beliebigen Argumente beenden, hoffe ich, dass du dich mehr zuversichtlich fühlst, diese mächtigen Werkzeuge in deinen Python-Skripten zu verwenden. Übe die Verwendung von *args und **kwargs in deinen eigenen Funktionen, und bald wirst du Python-Code mit der Eleganz eines geübten Zauberers erstellen. Happy coding, und möge deine Funktionen immer flexibel sein!

Credits: Image by storyset