Übersetzung: Deutsch
Python - Standardargumente
Hallo在那里, aufstrebende Python-Programmierer! Heute wollen wir in die wunderbare Welt der Standardargumente in Python eintauchen. Als euer freundlicher Nachbar und Informatiklehrer bin ich begeistert, euch auf dieser Reise zu führen. Also, holt euch eure Lieblingsgetränke, macht euch komfortabel und lass uns gemeinsam auf diese Python-Abenteuerreise aufbrechen!
Was sind Standardargumente?
Bevor wir in die Details einsteigen, beginnen wir mit den Grundlagen. Standardargumente sind eine praktische Funktion in Python, die es euch ermöglicht, Funktionsparameter mit vorgegebenen Werten zu definieren. Diese Werte werden verwendet, wenn ihr keine spezifischen Werte bei der Aufruf der Funktion angibt.
Denkt an Standardargumente als eine Sicherheitsnetz. Sie sind dort, um euch aufzufangen, wenn ihr vergisst, einen Wert anzugeben und stellen sicher, dass eure Funktion trotzdem problemlos ausgeführt werden kann. Es ist wie ein Freund, der immer zusätzliche Snacks zu einem Picknick mitbringt – ihr könnt sie vielleicht nicht immer benötigen, aber es ist großartig, sie zu haben, nur falls!
Warum sollten Standardargumente verwendet werden?
- Sie machen euren Code flexibler.
- Sie verringern die Anzahl der Argumente, die ihr angeben müsst.
- Sie helfen, die Rückwärtskompatibilität zu gewährleisten, wenn ihr neuen Parametern zu Funktionen hinzufügt.
Nun schauen wir uns an, wie das in der Praxis funktioniert!
Beispiel für Standardargumente
Beginnen wir mit einem einfachen Beispiel. Stellen wir uns vor, wir erstellen eine Funktion, um Leute zu begrüßen:
def begrüßen(name, begrüßung="Hallo"):
return f"{begrüßung}, {name}!"
# Verwendung der Funktion
print(begrüßen("Alice"))
print(begrüßen("Bob", "Hi"))
Ausgabe:
Hallo, Alice!
Hi, Bob!
In diesem Beispiel ist begrüßung
unser Standardargument. Wenn wir keine Begrüßung angeben, verwendet die Funktion standardmäßig "Hallo". Lass uns das aufbrechen:
- Wir haben die Funktion
begrüßen
mit zwei Parametern definiert:name
undbegrüßung
. -
begrüßung
hat den Standardwert "Hallo". - Wenn wir
begrüßen("Alice")
aufrufen, geben wir nurname
an. Die Funktion verwendet die Standardbegrüßung "Hallo". - Wenn wir
begrüßen("Bob", "Hi")
aufrufen, geben wir sowohlname
als auchbegrüßung
an, sodass die Funktion "Hi" anstelle des Standards verwendet.
Beispiel: Aufruf der Funktion ohne Schlüsselwortargumente
Nun schauen wir uns ein etwas komplexeres Beispiel an. Wir erstellen eine Funktion, um den Gesamtpreis der Artikel in einem Einkaufswagen zu berechnen:
def berechne_gesamtpreis(artikel, steuersatz=0.08, rabatt=0):
zwischensumme = sum(artikel)
gesamtpreis = zwischensumme * (1 + steuersatz) - rabatt
return round(gesamtpreis, 2)
# Verwendung der Funktion
warenkorb1 = [10, 20, 30]
print(berechne_gesamtpreis(warenkorb1))
print(berechne_gesamtpreis(warenkorb1, 0.10))
print(berechne_gesamtpreis(warenkorb1, 0.10, 5))
Ausgabe:
64.80
66.00
61.00
Lass uns das aufbrechen:
- Unsere
berechne_gesamtpreis
Funktion hat drei Parameter:artikel
(erforderlich),steuersatz
(Standard 0.08) undrabatt
(Standard 0). - Beim ersten Aufruf geben wir nur
artikel
an. Die Funktion verwendet den Standardsteuersatz und keinen Rabatt. - Beim zweiten Aufruf geben wir
artikel
und einen benutzerdefinierten Steuersatz von 0.10 an. Der Rabatt bleibt 0. - Beim dritten Aufruf geben wir alle drei Argumente an:
artikel
, Steuersatz und einen Rabatt von 5.
Beachtet, dass beim Aufruf einer Funktion ohne Schlüsselwortargumente die Reihenfolge wichtig ist! Python weist Werte den Parametern in der Reihenfolge zu, in der sie bereitgestellt werden.
Verwendung von mutablen Objekten als Standardargumente
Nun kommt das-Trickige. Die Verwendung von mutablen Objekten (wie Listen oder Wörterbüchern) als Standardargumente kann zu unerwartetem Verhalten führen. Lassen Sie mich euch das zeigen:
def hinzufügen_artikel(artikel, einkaufsliste=[]):
einkaufsliste.append(artikel)
return einkaufsliste
print(hinzufügen_artikel("Apfel"))
print(hinzufügen_artikel("Banane"))
print(hinzufügen_artikel("Kirsche"))
Ausgabe:
['Apfel']
['Apfel', 'Banane']
['Apfel', 'Banane', 'Kirsche']
Überraschung! Die Liste wird mit jedem Aufruf länger. Dies passiert, weil die Standardliste nur einmal beim Definieren der Funktion erstellt wird, nicht jedes Mal, wenn die Funktion aufgerufen wird.
Um dies zu vermeiden, können wir None
als Standard verwenden und eine neue Liste innerhalb der Funktion erstellen:
def hinzufügen_artikel(artikel, einkaufsliste=None):
if einkaufsliste is None:
einkaufsliste = []
einkaufsliste.append(artikel)
return einkaufsliste
print(hinzufügen_artikel("Apfel"))
print(hinzufügen_artikel("Banane"))
print(hinzufügen_artikel("Kirsche"))
Ausgabe:
['Apfel']
['Banane']
['Kirsche']
Viel besser! Jetzt erstellt jeder Aufruf eine neue Liste wie erwartet.
Zusammenfassung der Python-Standardargumente
Lassen Sie uns das, was wir gelernt haben, in einer praktischen Tabelle zusammenfassen:
Konzept | Beschreibung | Beispiel |
---|---|---|
Grundlegendes Standardargument | Bietet einen Standardwert für einen Parameter | def begrüßen(name, begrüßung="Hallo"): |
Mehrere Standardargumente | Eine Funktion kann mehrere Standardargumente haben | def berechne_gesamtpreis(artikel, steuersatz=0.08, rabatt=0): |
Reihenfolge der Argumente | Nicht-Standardargumente müssen vor Standardargumenten in der Funktionsdefinition stehen | def func(erforderlich, optional=standard): |
Mutable Standardargumente | Vermeiden Sie die Verwendung von mutablen Objekten als Standardargumente | Verwenden Sie None als Standard und erstellen Sie das Objekt innerhalb der Funktion |
Schlüsselwortargumente | Ermöglichen den Aufruf von Funktionen mit benannten Argumenten in beliebiger Reihenfolge | berechne_gesamtpreis(artikel=[10, 20], rabatt=5) |
Und so ist es, Leute! Ihr habt gerade eure Python-Fähigkeiten mit Standardargumenten verbessert. Denkt daran, wie jedes leistungsstarke Werkzeug, verwendet sie weise. Sie können euren Code flexibler und einfacher zu verwenden machen, aber seid vorsichtig mit diesen mutablen Standards!
Weiter üben, neugierig bleiben und Happy Coding! Bevor ihr es wischt, schreibt ihr Python wie ein Profi. Bis zum nächsten Mal, das ist euer freundlicher Nachbar CS-Lehrer, der abmeldet!
Credits: Image by storyset