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

Python - Default Arguments

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?

  1. Sie machen euren Code flexibler.
  2. Sie verringern die Anzahl der Argumente, die ihr angeben müsst.
  3. 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:

  1. Wir haben die Funktion begrüßen mit zwei Parametern definiert: name und begrüßung.
  2. begrüßung hat den Standardwert "Hallo".
  3. Wenn wir begrüßen("Alice") aufrufen, geben wir nur name an. Die Funktion verwendet die Standardbegrüßung "Hallo".
  4. Wenn wir begrüßen("Bob", "Hi") aufrufen, geben wir sowohl name als auch begrüß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:

  1. Unsere berechne_gesamtpreis Funktion hat drei Parameter: artikel (erforderlich), steuersatz (Standard 0.08) und rabatt (Standard 0).
  2. Beim ersten Aufruf geben wir nur artikel an. Die Funktion verwendet den Standardsteuersatz und keinen Rabatt.
  3. Beim zweiten Aufruf geben wir artikel und einen benutzerdefinierten Steuersatz von 0.10 an. Der Rabatt bleibt 0.
  4. 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