Wie man Switch-Anweisungen in Python (2025) schreibt - Switch Case Beispiel
Takashi Yamamoto
Infrastructure Engineer · Leapcell

Einführung
In vielen Programmiersprachen ist eine Switch-Anweisung eine Kontrollstruktur, die die Ausführung eines Codeblocks aus vielen Optionen basierend auf dem Wert einer Variablen oder eines Ausdrucks ermöglicht. Während Python keine eingebaute switch
-Anweisung wie Sprachen wie C, Java oder JavaScript hat, gibt es effektive Möglichkeiten, diese Funktionalität nachzubilden. Mit Python 3.10 bietet die Einführung der match
-Anweisung eine elegante und native Lösung zur Implementierung von Switch-Case-Verhalten.
Dieses Tutorial untersucht traditionelle Methoden zur Nachahmung von Switch-Anweisungen und befasst sich mit der neuen match
-Anweisung.
Key Takeaways
- Python hat keine native
switch
-Anweisung, bietet aber mehrere alternative Ansätze. - Die
match
-Anweisung, die in Python 3.10 eingeführt wurde, ist der pythonischste Weg, um mehrere Fälle zu behandeln. - Für einfache Abbildungen bleiben Dictionaries eine effektive Lösung.
Traditionelle Methoden
Vor Python 3.10 verwendeten Entwickler oft Dictionaries oder if-elif-else
-Ketten, um Switch-Anweisungen nachzubilden. Im Folgenden sind zwei gängige Ansätze aufgeführt:
1. Verwenden von Dictionaries
Dictionaries können Funktionen oder Werte speichern, die Schlüsseln zugeordnet sind, wodurch das Switch-Case-Verhalten effektiv nachgeahmt wird.
# Beispiel: Basic Switch mit Dictionary def case_one(): return "Fall 1 Ausgeführt" def case_two(): return "Fall 2 Ausgeführt" def default_case(): return "Standardfall" switch = { 1: case_one, 2: case_two } # Eingabewert case_value = 1 # Führe den entsprechenden Fall aus result = switch.get(case_value, default_case)() print(result)
2. Verwenden von if-elif-else
-Ketten
Eine if-elif-else
-Kette ist unkompliziert, kann aber bei vielen Fällen umständlich werden.
# Beispiel: Basic Switch mit if-elif-else case_value = 3 if case_value == 1: result = "Fall 1 Ausgeführt" elif case_value == 2: result = "Fall 2 Ausgeführt" else: result = "Standardfall" print(result)
Die Match-Anweisung (Python 3.10+)
Die match
-Anweisung, die in Python 3.10 eingeführt wurde, bietet eine strukturierte Möglichkeit zur Implementierung von Switch-Case-Funktionalität. Sie unterstützt Pattern Matching und ist dadurch leistungsfähiger als herkömmliche Switch-Anweisungen in anderen Sprachen.
Syntax
match variable: case pattern_1: # Codeblock case pattern_2: # Codeblock case _: # Standardblock
Beispiel 1: Basic Match-Case
case_value = 2 match case_value: case 1: result = "Fall 1 Ausgeführt" case 2: result = "Fall 2 Ausgeführt" case _: result = "Standardfall" print(result)
Beispiel 2: Erweitertes Pattern Matching
Pattern Matching ermöglicht komplexe Fälle wie das Matching von Datenstrukturen.
# Beispiel: Matching von Tupeln data = ("action", 42) match data: case ("action", value) if value > 40: result = f"Aktion mit Wert {value}" case ("action", value): result = f"Aktion mit kleinerem Wert {value}" case _: result = "Keine Übereinstimmung" print(result)
Wann sollte welche Methode verwendet werden
- Dictionaries: Verwenden Sie diese, wenn die Fälle einfach sind und direkt Werten oder Funktionen zugeordnet werden.
- If-Elif-Else: Verwenden Sie diese für eine kleine Anzahl von Fällen oder wenn Bedingungen komplexe Ausdrücke beinhalten.
- Match-Anweisung: Verwenden Sie diese für komplexe Matching-Szenarien oder bei der Arbeit mit strukturierten Daten (z. B. Tupel, Listen, Dictionaries).
FAQs
Die match
-Anweisung, die in Python 3.10 eingeführt wurde, ist eine Kontrollstruktur für Pattern Matching, die eine saubere und vielseitige Fallbehandlung ermöglicht.
Sie können eine switch
-Anweisung mithilfe von Dictionaries, if-elif-else
-Ketten oder der modernen match
-Anweisung in Python 3.10+ nachbilden.
Nein, die match
-Anweisung ist nur in Python 3.10 und höher verfügbar. Für ältere Versionen verwenden Sie Dictionaries oder if-elif-else
-Ketten.
Fazit
Die Vielseitigkeit von Python ermöglicht mehrere Möglichkeiten zur Implementierung des Switch-Case-Verhaltens, von Dictionaries und if-elif-else
-Ketten bis hin zur neuen und leistungsstarken match
-Anweisung. Mit Python 3.10 und höher ist die match
-Anweisung die bevorzugte und pythonischste Möglichkeit, diese Funktionalität zu implementieren. Indem Sie die verfügbaren Optionen verstehen, können Sie den am besten geeigneten Ansatz für Ihr Projekt auswählen.
Zusätzliche Ressourcen
Wir sind Leapcell, Ihre erste Wahl für die Bereitstellung von Python-Projekten in der Cloud.
Leapcell ist die Serverless-Plattform der nächsten Generation für Webhosting, asynchrone Aufgaben und Redis:
Multi-Sprachen-Unterstützung
- Entwickeln Sie mit Node.js, Python, Go oder Rust.
Stellen Sie unbegrenzt Projekte kostenlos bereit
- zahlen Sie nur für die Nutzung – keine Anfragen, keine Gebühren.
Unschlagbare Kosteneffizienz
- Pay-as-you-go ohne Leerlaufgebühren.
- Beispiel: 25 $ unterstützen 6,94 Millionen Anfragen bei einer durchschnittlichen Antwortzeit von 60 ms.
Optimierte Entwicklungserfahrung
- Intuitive Benutzeroberfläche für mühelose Einrichtung.
- Vollautomatische CI/CD-Pipelines und GitOps-Integration.
- Echtzeitmetriken und -protokollierung für umsetzbare Erkenntnisse.
Mühelose Skalierbarkeit und hohe Leistung
- Auto-Skalierung zur einfachen Bewältigung hoher Parallelität.
- Kein operativer Aufwand – konzentrieren Sie sich einfach auf den Aufbau.
Erfahren Sie mehr in der Dokumentation!
Folgen Sie uns auf X: @LeapcellHQ