Erklärung zur Lektion
Nach dieser Lektion kannst du:
Ein Standardargument gibt einem Parameter einen Wert, wenn der Aufrufer dieses Argument weglässt:
def format_status(service, status="unknown"):
return f"{service}: {status}"format_status("worker") verwendet "unknown", während format_status("worker", "healthy") den Wert überschreibt.
Parameter ohne Standardwert müssen vor Parametern mit Standardwert stehen:
def create_job(name, retries=3):
...Python erlaubt es Aufrufern außerdem, Argumente über ihren Namen zu übergeben:
create_job(name="backup", retries=5)Schlüsselwortargumente machen Aufrufe klarer, wenn mehrere Werte ähnliche Typen haben oder wenn nur eine optionale Einstellung überschrieben werden soll. Ihre Reihenfolge darf von der Reihenfolge der Parameter abweichen, solange jeder Name gültig ist und kein Argument doppelt übergeben wird.
Funktionstests können das Standardverhalten prüfen, indem sie eine Funktion mit weniger Argumenten aufrufen. Der aktuelle Funktionsaufgaben-Runner ruft Funktionen positional auf. Deshalb übt diese Lektion die Syntax von Schlüsselwortaufrufen in gezielten Code-Aufgaben, während echte Funktionstests das Verhalten der Funktion prüfen.
Fortgeschrittene Themen wie *args, **kwargs, reine Schlüsselwortparameter (keyword-only) und die Fallstricke veränderlicher Standardwerte gehören in die spätere Einheit „Funktionen im Detail“.
def cache_label(service, ttl=300):
return f"{service}: {ttl}s"
print(cache_label("api"))Ausgabe:
api: 300sDer Aufrufer übergibt nur das erforderliche Argument.
def retry_label(job, retries=3):
return f"{job}: {retries} retries"
print(retry_label("sync", 5))Ausgabe:
sync: 5 retriesDas zweite Argument ersetzt den Standardwert.
def build_window(name, width=800, height=600):
return f"{name}: {width}x{height}"
print(build_window(name="Dashboard", height=720, width=1280))Ausgabe:
Dashboard: 1280x720Schlüsselwortargumente dürfen in einer anderen Reihenfolge übergeben werden.
def create_alert(message, level="info", channel="console"):
return f"[{level}] {channel}: {message}"
print(create_alert("Queue delayed", channel="slack"))Ausgabe:
[info] slack: Queue delayedNur der Kanal wird überschrieben; die Stufe behält ihren Standardwert.
| Ziel | Python |
|---|---|
| Einen optionalen Parameter definieren | parameter=value |
| Den Standardwert verwenden | Dieses Argument weglassen |
| Den Standardwert überschreiben | Einen anderen Wert übergeben |
| Einen Aufruf selbsterklärend machen | parameter=value im Aufruf |
| Eine gültige Signatur beibehalten | Erforderliche Parameter vor Parametern mit Standardwert |