Mit dem frisch erschienen Python 3.10 wurde unter anderem Structural Pattern Matching eingeführt. Wie dies genutzt werden kann und was man vorher benutzt hat, zeige ich euch in diesem Artikel.
Man mag es kaum glauben, aber bisher gab es in Python keine Switch-Case-Statements.
Daher musste man sich anders behelfen.
vor 3.10
if-else
def get_week_day(argument):
if argument == 0:
return "Sunday"
elif argument == 1:
return "Monday"
elif argument == 2:
return "Tuesday"
elif argument == 3:
return "Wednesday"
elif argument == 4:
return "Thursday"
elif argument == 5:
return "Friday"
elif argument == 6:
return "Saturday"
else:
return "Invalid day"
if __name__ == "__main__":
print (get_week_day(6))
print (get_week_day(8))
print (get_week_day(0))
Dictionary
def get_week_day(argument):
switcher = {
0: "Sunday",
1: "Monday",
2: "Tuesday",
3: "Wednesday",
4: "Thursday",
5: "Friday",
6: "Saturday"
}
return switcher.get(argument, "Invalid day")
if __name__ == "__main__":
print (get_week_day(6))
print (get_week_day(8))
print (get_week_day(0))
mit 3.10
Match
def get_week_day(argument):
match argument:
case 0:
return "Sunday"
case 1:
return "Monday"
case 2:
return "Tuesday"
case 3:
return "Wednesday"
case 4:
return "Thursday"
case 5:
return "Friday"
case 6:
return "Saturday"
case _:
return "Invalid day"
if __name__ == "__main__":
print (get_week_day(6))
print (get_week_day(8))
print (get_week_day(0))
Fazit
Für einfache Statements finde ich nach wie vor die Dictionary Variante die optimalste, da diese sehr kurz gehalten und übersichtlich ist.
Mit Match kann man hingegen sehr komplexe und gemischte Statements abbilden, daher empfinde ich Match als sinnvollen Einzug.