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!
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