Funktionen Modifizieren
In der Programmierung sind Funktionen dynamische Werkzeuge, die sich an verschiedene Situationen und Anforderungen anpassen können. Sie sind nicht nur feste Codeblöcke. Funktionen lassen sich erweitern, um sie in unterschiedlichen Kontexten vielseitiger und benutzerfreundlicher zu gestalten.
In diesem Kapitel werden wir einige wichtige Techniken zur Modifikation von Funktionen untersuchen, wie zum Beispiel die Verwendung von Standardargumenten und Schlüsselwortargumenten.
Beginnen wir mit einem einfachen Beispiel, wie Funktionen modifiziert werden können, um ihre Nützlichkeit in unserem Verwaltungssystem für Lebensmittelgeschäfte zu verbessern:
Standardargumente
Standardargumente sind eine nützliche Funktion in Python, mit der Sie Standardwerte für Funktionsparameter festlegen können.
In der Funktion apply_discount()
ist der Parameter discount
standardmäßig auf 0.10
gesetzt. Das bedeutet, dass die Funktion automatisch einen Rabatt von 10 % anwendet, sofern nichts anderes angegeben wird. Wie bei der Variable default_discount_price
zu sehen ist, können wir die Funktion nur mit dem Parameter price
aufrufen.
Falls erforderlich, können wir den Standardwert überschreiben, indem wir sowohl den price
als auch einen benutzerdefinierten discount
(z. B. 0.20
für 20 %) übergeben, wie bei der Variable custom_discount_price
demonstriert.
# Define a function with a default `discount` argument def apply_discount(price, discount=0.10): discounted_price = price * (1 - discount) return discounted_price # Call the function without providing a `discount`, using the default value default_discount_price = apply_discount(100) print(f"Price after applying the default discount: ${default_discount_price}") # Call the function with a custom `discount` value custom_discount_price = apply_discount(100, 0.20) print(f"Price after applying a custom discount: ${custom_discount_price}")
Schlüsselwortargumente
Schlüsselwortargumente in Python ermöglichen es, Argumente durch explizite Benennung jedes Parameters zu übergeben, wodurch Funktionsaufrufe lesbarer und flexibler werden. Dies ist besonders hilfreich, wenn eine Funktion mehrere Parameter hat oder wenn die Reihenfolge der Argumente verwirrend sein könnte.
Im folgenden Beispiel werden sowohl price
als auch discount
angegeben, während der Parameter tax
seinen Standardwert behält. Dies bietet Flexibilität, ohne die Klarheit zu beeinträchtigen.
# Function where `tax` has a default value def calculate_total(price, discount, tax=0.05): total = price * (1 + tax) * (1 - discount) return total # Calling the function using keyword arguments total_cost = calculate_total(price=100, discount=0.15) print(f"Total cost after applying discount: ${total_cost}")
Hinweis
Die Reihenfolge der Parameter spielt keine Rolle, wenn sie mit Schlüsselwortargumenten übergeben werden.
Swipe to start coding
Funktionen zur Berechnung der Gesamtkosten eines Produkts durch Anwendung eines Rabattes und Steuersatzes erstellen, wobei Schlüsselwortargumente und Standardwerte für Flexibilität verwendet werden.
- Definition von
apply_discount(price, discount=0.05)
→ Gibt den Preis nach Anwendung des Rabattes zurück. - Definition von
apply_tax(price, tax=0.07)
→ Gibt den Preis nach Hinzufügen der Steuer zurück. - Definition von
calculate_total(price, discount=0.05, tax=0.07)
→ Verwendetapply_discount()
undapply_tax()
, um den Gesamtpreis mit sowohl Rabatt als auch Steuer zurückzugeben. - Aufruf von
calculate_total(120)
unter Verwendung des Standardrabattes und der Standardsteuer. - Aufruf von
calculate_total(100, discount=0.10, tax=0.08)
mit benutzerdefinierten Werten über Schlüsselwortargumente.
Ausgabebedingungen
- Ausgabe des Ergebnisses mit Standardwerten:
Gesamtkosten mit Standardrabatt und Steuer: $<total_price_default>
- Ausgabe des Ergebnisses mit benutzerdefinierten Werten:
Gesamtkosten mit individuellem Rabatt und Steuer: $<total_price_custom>
Hinweis
Bei der Definition von Funktionen sollten erforderliche Parameter zuerst und danach Parameter mit Standardwerten angegeben werden.
Beim Aufruf von Funktionen mit Schlüsselwortargumenten sollten Positionsargumente vor Schlüsselwortargumenten stehen.
Lösung
Danke für Ihr Feedback!