Python 3.10 kann endlich Switch-Case-Statement

Mi, 6. Oktober 2021, Ralf Hersel

Darauf haben viele Entwickler und Entwicklerinnen gewartet. Bis zur heute erschienenen Version 3.10 der Programmiersprache Python, musste man sich mit if/elif-Konstrukten behelfen, um das Switch-Case-Statement abzubilden. Bei Python 3.10 nennt sich dieses Statement nun match.

Hier ein Beispiel:

def http_error(status):
    match status:
        case 400:
            return "Bad request"
        case 404:
            return "Not found"
        case 418:
            return "I'm a teapot"
        case 401 | 403 | 404:
            return 'Not allowed'
        case _:
            return "Something else"

Das oben gezeigte Beispiel prüft den Inhalt der Variable status auf verschiedene Inhalte. Dies geschieht mit einer Reihe von case Statements. Der else-Fall wird mit case _ abgebildet. Die zu prüfenden Literale können mit dem OR-Operator | verbunden werden. Das match-Statement kann mit verschiedenen Datentypen umgehen, wie zum Beispiel Sequenzen (Listen, Tupel etc.), Mapping-Strukturen (z.B. Wörterbücher), primitive Datentypen oder Klasseninstanzen. In der Dokumentation zu Python 3.10 finden sich viele weitere Beispiele zur Verwendung des match-Statements.

Welche Neuerungen ansonsten mit Version 3.10 erschienen sind, findet man in der Quelle:

Quelle: https://docs.python.org/3.10/whatsnew/3.10.html