- 1 1. Was sind Standardargumente in Python? [Anfängerfreundlicher Leitfaden]
- 2 2. Grundlegende Verwendung von Python-Standardargumenten
- 3 3. Häufige Fehler und Vorsichtsmaßnahmen beim Verwenden von Standardargumenten
- 3.1 3.1 Achten Sie auf die Reihenfolge der Standardargumente!
- 3.2 3.2 Verwenden Sie keine veränderlichen Objekte (Listen, Wörterbücher) als Standardwerte
- 3.3 3.3 Seien Sie vorsichtig mit dem Auswertungszeitpunkt von Standardargumenten!
- 3.4 3.4 Achten Sie darauf, wenn Sie mit Schlüsselwortargumenten kombinieren!
- 3.5 3.5 Zusammenfassung
- 4 4. Auswertungszeitpunkt von Standardargumenten und seine Auswirkungen
- 5 5. Praktische Anwendungen von Standardargumenten in Python
- 5.1 improve code readability and maintainability
- 5.2 Default arguments are often used to improve the usability of functions. Standardargumente werden oft verwendet, um die Benutzerfreundlichkeit von Funktionen zu verbessern. They are especially useful in the following scenarios:
- 5.3 Wenn die Reihenfolge der Argumente wichtig ist
- 6 6. Häufig gestellte Fragen (FAQ) zu Python-Standardargumenten
1. Was sind Standardargumente in Python? [Anfängerfreundlicher Leitfaden]
Beim Verwenden von Python-Funktionen kann es manchmal umständlich sein, Werte für jedes Argument zu übergeben. Hier kommen Standardargumente ins Spiel. Durch das Festlegen von Standardargumenten können Sie Parameter beim Aufruf einer Funktion weglassen und so saubereren und flexibleren Code schreiben. In diesem Abschnitt erklären wir das grundlegende Konzept von Standardargumenten und wie man sie verwendet.
1.1 Was sind Standardargumente?
In Python-Funktionen können Sie Standardwerte (Anfangswerte) zu Argumenten zuweisen. Diese werden als „Standardargumente“ bezeichnet. Wenn Sie eine Funktion mit Standardargumenten definieren, können Sie bestimmte Parameter beim Aufruf der Funktion weglassen, und die vordefinierten Standardwerte werden automatisch angewendet.
Grundlegende Syntax von Standardargumenten
def function_name(argument_name=default_value):
process
Durch die Verwendung dieser Syntax können Sie Argumente optional machen und so die Lesbarkeit und Flexibilität Ihres Codes verbessern.
1.2 Grundlegende Verwendung von Standardargumenten
Lassen Sie uns konkrete Code-Beispiele betrachten, um zu verstehen, wie Standardargumente in Python funktionieren.
Grundlegendes Beispiel
def greet(name="Gast"):
print(f"Hallo, {name}!")
greet() # Output: Hallo, Gast!
greet("Sato") # Output: Hallo, Sato!
In der obigen greet()
-Funktion ist der Standardwert von name
auf "Gast"
gesetzt. Wenn die Funktion ohne Argumente aufgerufen wird, wird name
zu "Gast"
. Andererseits hat bei einem Aufruf von greet("Sato")
der angegebene Wert Vorrang.
Funktionen mit mehreren Standardargumenten
Sie können auch mehrere Standardargumente festlegen.
def introduce(name="Anonym", age=20):
print(f"Mein Name ist {name}. Ich bin {age} Jahre alt.")
introduce() # Output: Mein Name ist Anonym. Ich bin 20 Jahre alt.
introduce("Tanaka") # Output: Mein Name ist Tanaka. Ich bin 20 Jahre alt.
introduce("Tanaka", 25) # Output: Mein Name ist Tanaka. Ich bin 25 Jahre alt.
Durch das Zuweisen von Standardwerten zu mehreren Argumenten können Sie Ihre Funktionsaufrufe flexibler gestalten.
Vorteile der Verwendung von Standardargumenten
Die Verwendung von Standardargumenten bietet mehrere Vorteile:
- Vereinfacht den Code(optionale Argumente können weggelassen werden)
- Verhindert Fehler(vermeidet Fehler durch fehlende Argumente)
- Verbessert die Vielseitigkeit der Funktion(Standardwerte ermöglichen flexiblere Nutzung)
1.3 Häufige Anwendungsfälle für Standardargumente
Standardargumente sind in vielen Situationen nützlich. Hier sind einige gängige Fälle:
1. Konfigurierbare Optionen
Durch die Vorbereitung von Standardwerten für Optionen innerhalb einer Funktion können Sie es Benutzern leicht ermöglichen, diese zu überschreiben.
def download_file(url, timeout=10):
print(f"Lade {url} innerhalb von {timeout} Sekunden herunter.")
download_file("https://example.com")
# Output: Lade https://example.com innerhalb von 10 Sekunden herunter.
download_file("https://example.com", 5)
# Output: Lade https://example.com innerhalb von 5 Sekunden herunter.
Hier ist der Standardwert von timeout
auf 10
gesetzt. Wenn kein Argument angegeben wird, beträgt das Timeout standardmäßig 10 Sekunden.
2. Logging-Nachrichten
Durch das Zuweisen eines Standard-Log-Stufen zu Funktionen können Sie sauberere und konsistentere Debugging-Ausgaben aufrechterhalten.
def log_message(message, level="INFO"):
print(f"[{level}] {message}")
log_message("Prozess gestartet")
# Output: [INFO] Prozess gestartet
log_message("Ein Fehler ist aufgetreten", "ERROR")
# Output: [ERROR] Ein Fehler ist aufgetreten
In diesem Beispiel ist level
standardmäßig auf "INFO"
gesetzt, sodass Nachrichten, sofern nicht anders angegeben, auf INFO-Ebene protokolliert werden.
1.4 Zusammenfassung
Standardargumente in Python sind eine bequeme Möglichkeit, flexible Funktionen zu entwerfen.
- Sie ermöglichen den Aufruf von Funktionen ohne Angabe jedes Arguments
- Mehrere Standardargumente können festgelegt werden
- Vereinfacht den Code, verbessert Lesbarkeit und Flexibilität
- Nützlich für konfigurierbare Optionen, Logging und viele andere Fälle
Im nächsten Abschnitt behandeln wir wichtige Warnhinweise und häufige Fehler beim Verwenden von Python-Standardargumenten!
2. Grundlegende Verwendung von Python-Standardargumenten
Im vorherigen Abschnitt haben wir das grundlegende Konzept von Standardargumenten in Python erklärt.
In diesem Abschnitt schauen wir uns wie man Standardargumente in der Praxis verwendet anhand konkreter Code-Beispiele an.
2.1 Definition von Funktionen mit Standardargumenten
Funktionen mit Standardargumenten können wie folgt definiert werden:
def function_name(arg1=default_value1, arg2=default_value2, ...):
process
Beispiel
def greet(name="Gast", message="Hallo"):
print(f"{name}, {message}")
greet() # Ausgabe: Gast, Hallo
greet("Sato") # Ausgabe: Sato, Hallo
greet("Sato", "Wie geht es dir?") # Ausgabe: Sato, Wie geht es dir?
Wenn Argumente ausgelassen werden, werden die Standardwerte angewendet. Wenn Argumente angegeben werden, werden diese Werte stattdessen verwendet.
2.2 Kombinieren von Standardargumenten mit Schlüsselwortargumenten
Beim Aufrufen von Funktionen können Sie Schlüsselwortargumente für mehr Flexibilität verwenden.
Beispiel mit Schlüsselwortargumenten
def introduce(name="Anonym", age=20, country="Japan"):
print(f"Mein Name ist {name}. Ich bin {age} Jahre alt, aus {country}.")
introduce()
# Ausgabe: Mein Name ist Anonym. Ich bin 20 Jahre alt, aus Japan.
introduce(name="Tanaka")
# Ausgabe: Mein Name ist Tanaka. Ich bin 20 Jahre alt, aus Japan.
introduce(age=25, name="Yamamoto")
# Ausgabe: Mein Name ist Yamamoto. Ich bin 25 Jahre alt, aus Japan.
introduce(country="USA", age=30)
# Ausgabe: Mein Name ist Anonym. Ich bin 30 Jahre alt, aus USA.
➡Schlüsselwortargumente ermöglichen es, Funktionen aufzurufen, ohne sich um die Argumentreihenfolge sorgen zu müssen und verbessern die Lesbarkeit.
2.3 Praktische Anwendungsfälle für Standardargumente
Standardargumente können den Code in spezifischen Szenarien vereinfachen.
1 Protokollierung
Durch Festlegen eines Standard-Protokollniveaus können Sie die Protokollverwaltung standardisieren.
def log_message(message, level="INFO"):
print(f"[{level}] {message}")
log_message("Anwendung wird gestartet")
# Ausgabe: [INFO] Anwendung wird gestartet
log_message("Ein Fehler ist aufgetreten", "ERROR")
# Ausgabe: [ERROR] Ein Fehler ist aufgetreten
2 API-Anfrangeparameter
Das Festlegen einer Standard-Timeout-Zeit beim Aufrufen von APIs kann helfen, Fehler zu verhindern.
import requests
def fetch_data(url, timeout=10):
response = requests.get(url, timeout=timeout)
return response.json()
# Standard-Timeout von 10 Sekunden
data = fetch_data("https://api.example.com/data")
# Timeout überschreiben
data = fetch_data("https://api.example.com/data", timeout=5)
3 Vereinfachung von Berechnungen
Standardargumente können Berechnungsfunktionen flexibler machen.
def calculate_price(price, tax_rate=0.10):
return price * (1 + tax_rate)
print(calculate_price(1000)) # Ausgabe: 1100.0 (10 % Steuer)
print(calculate_price(1000, 0.08)) # Ausgabe: 1080.0 (8 % Steuer)
2.4 Zusammenfassung
- Standardargumente verbessern die Benutzerfreundlichkeit von Funktionen
- Schlüsselwortargumente ermöglichen es, die Argumentreihenfolge zu ignorieren
- Nützlich in praktischen Szenarien wie Protokollierung, API-Anfragen und Berechnungen

3. Häufige Fehler und Vorsichtsmaßnahmen beim Verwenden von Standardargumenten
Standardargumente in Python sind bequem, aberfalsche Verwendung kann zu unerwarteten Fehlern führen.
In diesem Abschnitt erklären wir wichtige Vorsichtsmaßnahmen, häufige Fehler und wie man sie vermeidet.
3.1 Achten Sie auf die Reihenfolge der Standardargumente!
In Python,Argumente mit Standardwerten müssen nach Argumenten ohne Standardwerte kommen.
Wenn die Reihenfolge falsch ist, tritt einSyntaxErrorauf.
❌ Falsches Beispiel (Verursacht Fehler)
def func(x=0, y): # Fehler: Argument ohne Standardwert folgt auf Standardargument
print(x, y)
➡ Weil x=0
vor y
kommt, löst Python einen Syntaxfehler aus.
✅ Korrektes Beispiel
def func(y, x=0): # OK
print(x, y)
➡Das Platzieren von Argumenten ohne Standard zuerst vermeidet den Fehler.
3.2 Verwenden Sie keine veränderlichen Objekte (Listen, Wörterbücher) als Standardwerte
Wenn Sie einverändliches Objekt (wie eine Liste oder ein Wörterbuch) als Standardwert zuweisen, können unerwartete Verhaltensweisen auftreten.
Das liegt daran, dassStandardargumente einmal beim Definieren der Funktion ausgewertet werden und dann bei jedem Aufruf wiederverwendet werden.
❌ Falsches Beispiel (Fehler)
def add_item(item, item_list=[]):
item_list.append(item)
return item_list
print(add_item("apple")) # Ausgabe: ['apple']
print(add_item("banana")) # Ausgabe: ['apple', 'banana'] ← Unerwartetes Verhalten!
➡Die Standardliste item_list=[]
wird über Aufrufe hinweg wiederverwendet, was zu einer Akkumulation von Werten führt.
✅ Korrektes Beispiel
def add_item(item, item_list=None):
if item_list is None:
item_list = [] # Erstelle eine neue Liste bei jedem Aufruf
item_list.append(item)
return item_list
print(add_item("apple")) # Ausgabe: ['apple']
print(add_item("banana")) # Ausgabe: ['banana'] ← Funktioniert wie erwartet!
➡Durch die Verwendung von None
als Standard und das Erstellen einer neuen Liste innerhalb der Funktion vermeiden Sie diesen Fehler.
3.3 Seien Sie vorsichtig mit dem Auswertungszeitpunkt von Standardargumenten!
In Python,werden Standardargumentwerte beim Definieren der Funktion ausgewertet, nicht bei jedem Aufruf der Funktion.
Das kann zu unbeabsichtigtem Verhalten führen, wenn zeitabhängige Werte verwendet werden.
❌ Falsches Beispiel (Fehler)
import datetime
def log_message(message, timestamp=datetime.datetime.now()):
print(f"[{timestamp}] {message}")
log_message("First log")
log_message("Second log") # Derselbe Zeitstempel wird wiederverwendet!
➡ Da datetime.datetime.now()
beim Definieren der Funktion ausgewertet wird,teilen alle Aufrufe denselben Zeitstempel.
✅ Korrektes Beispiel
import datetime
def log_message(message, timestamp=None):
if timestamp is None: # Wenn None, weise aktuelle Zeit zu
timestamp = datetime.datetime.now()
print(f"[{timestamp}] {message}")
log_message("First log")
log_message("Second log") # Verschiedene Zeitstempel werden verwendet
➡Durch die Verwendung von None
als Standard und Zuweisung innerhalb der Funktion werden bei jedem Aufruf frische Werte sichergestellt.
3.4 Achten Sie darauf, wenn Sie mit Schlüsselwortargumenten kombinieren!
Beim Verwenden von Funktionen mit Standardargumenten,kann eine falsche Mischung von Positions- und Schlüsselwortargumenten zu Fehlern führen.
❌ Falsches Beispiel (Fehler)
def greet(name="Guest", message="Hello"):
print(f"{name}, {message}")
greet("Hello", name="Sato")
# TypeError: multiple values for argument 'name'
➡Der String "Hello"
wurde als Positionsargument für name
übergeben, dann wurde name="Sato"
ebenfalls angegeben, was zu einem Konflikt führt.
✅ Korrektes Beispiel
greet(name="Sato", message="Hello") # OK
greet("Sato") # OK
➡Trennen Sie Positions- und Schlüsselwortargumente sorgfältig, um Duplikationsfehler zu vermeiden.
3.5 Zusammenfassung
- Standardargumente müssen nach Argumenten ohne Standard kommen
- Verwenden Sie keine veränderlichen Objekte (Listen, Wörterbücher) als Standardwerte
- Standardargumente werden zur Definitionszeit ausgewertet, nicht zur Aufrufzeit
- Seien Sie vorsichtig beim Mischen von Positions- und Schlüsselwortargumenten
4. Auswertungszeitpunkt von Standardargumenten und seine Auswirkungen
In Python,werden die Werte von Standardargumenten nur einmal zur Zeit der Funktionsdefinition ausgewertet, und dasselbe Objekt wird bei jedem Funktionsaufruf wiederverwendet.
Wenn Sie dieses Verhalten nicht verstehen,unerwartete Fehlerkönnen auftreten.
In diesem Abschnitt erklären wir den Auswertungszeitpunkt im Detail mit Beispielen und zeigen, wie man ihn korrekt verwendet.
4.1 Was ist der Auswertungszeitpunkt von Standardargumenten?
Normalerweise werden Python-Variablenbei jedem Funktionsaufruf frisch ausgewertet.
Allerdings werden Standardargumentenur einmal ausgewertet, wenn die Funktion definiert wird, was sie anders macht.
Beispiel für den Auswertungszeitpunkt
import datetime
def get_current_time(timestamp=datetime.datetime.now()):
print(f"Aktuelle Zeit: {timestamp}")
get_current_time() # Beispielausgabe: Aktuelle Zeit: 2025-03-20 12:00:00
get_current_time() # Beispielausgabe: Aktuelle Zeit: 2025-03-20 12:00:00 (gleiche Zeit!)
➡Auch wenn die Funktion mehrmals aufgerufen wird, wird der gleiche Zeitstempel ausgegeben,
weil datetime.datetime.now()
einmal bei der Funktionsdefinition ausgewertet und wiederverwendet wurde.
4.2 Probleme, die durch den Auswertungszeitpunkt verursacht werden
Dieses Verhalten kann zu den folgendenFehlernführen.
Problem 1: Veränderliche Objekte (Listen, Dictionaries) werden geteilt
def append_to_list(value, my_list=[]):
my_list.append(value)
return my_list
print(append_to_list(1)) # Ausgabe: [1]
print(append_to_list(2)) # Ausgabe: [1, 2] ← Unerwartet!
print(append_to_list(3)) # Ausgabe: [1, 2, 3]
➡Bei jedem Aufruf wird keine neue Liste erstellt. Stattdessen wird dieselbe Liste wiederverwendet, was dazu führt, dass Daten akkumuliert werden.
Problem 2: Dictionaries zeigen das gleiche Verhalten
def add_to_dict(key, value, my_dict={}):
my_dict[key] = value
return my_dict
print(add_to_dict("a", 1)) # Ausgabe: {'a': 1}
print(add_to_dict("b", 2)) # Ausgabe: {'a': 1, 'b': 2} ← Unerwartet!
➡Das Dictionary wird über Funktionsaufrufe hinweg wiederverwendet, anstatt bei jedem Aufruf neu erstellt zu werden.
4.3 Wie man Fehler durch den Auswertungszeitpunkt vermeidet
Um diese Probleme zu verhindern, ist die beste Praxis,None
als Standardwert zu verwenden und das Objekt innerhalb der Funktion zu erstellen.
✅ Korrektes Beispiel (Lösung)
def append_to_list(value, my_list=None):
if my_list is None:
my_list = [] # Erstelle bei jedem Aufruf eine neue Liste
my_list.append(value)
return my_list
print(append_to_list(1)) # Ausgabe: [1]
print(append_to_list(2)) # Ausgabe: [2] ← Funktioniert korrekt
print(append_to_list(3)) # Ausgabe: [3]
➡Durch die Verwendung von None
wird bei jedem Aufruf eine neue Liste erstellt, was Fehler durch geteilten Zustand verhindert.
4.4 Warum ist None
die beste Wahl?
In Python istNone
unveränderlichund stellt sicher, dass ein neues Objekt erstellt wird, wann immer es benötigt wird.
Dieser Ansatz hat mehrere Vorteile:
- Verhindert Fehler durch geteilten Zustand
- Verbessert die Lesbarkeit durch explizite
if
-Überprüfungen - Ermöglicht sichere dynamische Erstellung von Objekten
Korrektes Beispiel für Dictionaries
def add_to_dict(key, value, my_dict=None):
if my_dict is None:
my_dict = {} # Erstelle ein neues Dictionary
my_dict[key] = value
return my_dict
print(add_to_dict("a", 1)) # Ausgabe: {'a': 1}
print(add_to_dict("b", 2)) # Ausgabe: {'b': 2} ← Funktioniert korrekt
➡Jeder Funktionsaufruf erstellt ein neues Dictionary, sodass Daten zwischen Aufrufen nicht geteilt werden.
4.5 Zusammenfassung
- Standardargumente werden einmal bei der Funktionsdefinition ausgewertet und wiederverwendet
- Veränderliche Objekte (Listen, Dictionaries) als Standardwerte können Fehler durch geteilten Zustand verursachen
- Beste Praxis: Verwende
None
und erstelle neue Objekte innerhalb der Funktion - Dies verhindert unerwartete Fehler und macht deinen Code sicherer
5. Praktische Anwendungen von Standardargumenten in Python
So far, we’ve explained the basics and precautions of Python default arguments.
Bisher haben wir die Grundlagen und Vorsichtsmaßnahmen bei Python-Standardargumenten erklärt.
In this section, we’ll look athow default arguments are used in real-world development.
In diesem Abschnitt schauen wir uns an, wie Standardargumente in der realen Entwicklung verwendet werden.
When used correctly, they can
improve code readability and maintainability
.
Bei korrekter Verwendung können sie
die Lesbarkeit und Wartbarkeit des Codes verbessern
.5.1 Entwurf von Funktionen mit Standardargumenten
Default arguments are often used to improve the usability of functions.
Standardargumente werden oft verwendet, um die Benutzerfreundlichkeit von Funktionen zu verbessern.
They are especially useful in the following scenarios:
1 Funktionen mit Konfigurationsoptionen
In functions that include configurable options, default arguments allow for flexible design.
In Funktionen, die konfigurierbare Optionen enthalten, ermöglichen Standardargumente ein flexibles Design.
def connect_to_database(host="localhost", port=3306, user="root", password=""):
print(f"Verbinde zur Datenbank: {host}:{port}, Benutzer: {user}")
connect_to_database()
# Ausgabe: Verbinde zur Datenbank: localhost:3306, Benutzer: root
connect_to_database(host="db.example.com", user="admin")
# Ausgabe: Verbinde zur Datenbank: db.example.com:3306, Benutzer: admin
➡Durch die Bereitstellung von Standardeinstellungen können Funktionen in Standardfällen einfach verwendet werden.5.2 Wann Standardargumente verwenden (und wann vermeiden)✅ Situationen, in denen Standardargumente nützlich sind
- Wenn Argumente optional sind
- Beispiel:
port=3306
,timeout=10
Wenn Sie häufig verwendete Standardwerte bereitstellen möchten
- Beispiel:
level="INFO"
für Logging
- Wenn Sie Funktionsaufrufe durch Definition eines Standardverhaltens vereinfachen möchten
- Beispiel:
name="Guest"
❌ Situationen, in denen Sie Standardargumente vermeiden sollten
- Wenn der Standardwert ein veränderliches Objekt ist (Liste, Dictionary usw.)
- ➡ Verwenden Sie
None
und initialisieren Sie richtig innerhalb der Funktion
- Wenn jeder Funktionsaufruf einen anderen Wert haben sollte
- Beispiel:
timestamp=datetime.datetime.now()
→ Verwenden SieNone
, um zur Aufrufzeit zu evaluieren
Wenn die Reihenfolge der Argumente wichtig ist
- ➡Platzieren Sie Standardargumente am Ende
5.3 Zusammenfassung
- Die richtige Verwendung von Standardargumenten verbessert die Lesbarkeit und Flexibilität des Codes
- Sie sind praktisch für Datenbankverbindungen, API-Anfragen, Logging, Benutzereingaben und mehr
6. Häufig gestellte Fragen (FAQ) zu Python-Standardargumenten
Wir haben Standardargumente detailliert behandelt, aber in der Praxis tauchen mehrere gängige Fragen auf.
Dieser Abschnitt fassthäufig gestellte Fragen zu Standardargumenten und ihre Antworten zusammen.6.1 Fragen zu den Grundlagen von Standardargumenten
F1. Gibt es Einschränkungen bei der Reihenfolge von Argumenten mit Standardwerten?
A:Ja.Argumente mit Standardwerten müssen immer nach Argumenten ohne Standardwerte kommen.
Wenn die Reihenfolge falsch ist, löst Python einenSyntaxError
aus.❌Falsches Beispiel (Fehler)
def func(x=10, y): # Fehler: Argument ohne Standardwert folgt auf Argument mit Standardwert print(x, y)
✅Korrektes Beispiel
def func(y, x=10): # OK print(x, y)
➡Die Regel ist, dass Argumente ohne Standardwerte zuerst kommen müssen.
6.2 Fragen zu veränderlichen Objekten (Listen, Wörterbücher)
F3. Warum treten Fehler auf, wenn Listen oder Wörterbücher als Standardargumente verwendet werden?
A:WeilPython Standardargumente einmal bei der Funktionsdefinition auswertet und dann dasselbe Objekt wiederverwendet.
Das bedeutet, dass veränderliche Objekte wie Listen oder Wörterbücher zwischen Aufrufen geteilt werden.❌Fehlerbeispiel
def add_item(item, item_list=[]): # Gefährlich item_list.append(item) return item_list print(add_item("apple")) # Ausgabe: ['apple'] print(add_item("banana")) # Ausgabe: ['apple', 'banana'] ← Unerwartet!
✅Korrektes Beispiel (Verwendung von
None
)def add_item(item, item_list=None): if item_list is None: item_list = [] # Erstelle eine neue Liste bei jedem Aufruf item_list.append(item) return item_list print(add_item("apple")) # Ausgabe: ['apple'] print(add_item("banana")) # Ausgabe: ['banana'] ← Funktioniert korrekt!
➡Verwenden Sie immer
None
und initialisieren Sie innerhalb der Funktion, um Fehler durch geteilten Zustand zu vermeiden.6.3 Weitere Fragen zu Standardargumenten
F5. Wann werden Standardargumente ausgewertet?
A:Standardargumente werden einmal zur Zeit der Funktionsdefinition ausgewertet.
Daher müssen Sie sie vorsichtig handhaben, wenn Sie unterschiedliche Werte für jeden Aufruf erwarten.❌Problematisches Beispiel
import datetime def log_message(message, timestamp=datetime.datetime.now()): print(f"[{timestamp}] {message}") log_message("First log") log_message("Second log") # Gleicher Zeitstempel wiederverwendet!
✅Korrektes Beispiel
def log_message(message, timestamp=None): if timestamp is None: timestamp = datetime.datetime.now() # Auswerten zur Aufrufzeit print(f"[{timestamp}] {message}") log_message("First log") log_message("Second log") # Unterschiedliche Zeitstempel ausgegeben!
➡Verwenden Sie
None
als Standard und werten Sie innerhalb der Funktion aus, wenn nötig.6.4 Zusammenfassung
- Standardargumente müssen nach nicht-Standardargumenten kommen
- Schlüsselwortargumente erlauben es, die Argumentreihenfolge bei Funktionsaufrufen zu ignorieren
- Verwenden Sie nie veränderliche Objekte als Standardwerte — verwenden Sie
None
stattdessen - Standardargumente werden bei der Funktionsdefinition ausgewertet, nicht zur Aufrufzeit
- Sie können sogar Funktionen als Standardargumente für dynamisches Verhalten übergeben
7. Schlussfolgerung und nächste Schritte
Wir haben nun Pythons Standardargumente detailliert erkundet.
Durch die angemessene Verwendung von Standardargumenten können Siedie Lesbarkeit des Codes verbessern, Flexibilität erhöhen und Fehler verhindern.Nächste Schritte:
- Funktionen erstellen, die Standardargumente verwenden, und ihr Verhalten testen
- Üben, Standardwerte mit
None
zu setzen - Experimentieren mit der Kombination von Schlüsselwortargumenten und Standardargumenten im Funktionsdesign
Das Meistern von Pythons Standardargumenten hilft Ihnen,effizienteren, zuverlässigeren und fehlerfreien Code zu schreiben. 🚀