Python3.10からmatch文が追加されたそう。
今までは、Enumを処理するにも↓のようにif elif を繰り返して書いていたのが
from blood_types import BloodTypes def uranai(blood_type: BloodTypes): """血液型占い""" if blood_type == BloodTypes.A: print("大吉") elif blood_type == BloodTypes.B: print("中吉") elif blood_type == BloodTypes.O: print("小吉") elif blood_type == BloodTypes.AB: print("凶") else: raise NotImplementedError()
↓のようにmatch文できれいに書けるようになった。
from blood_types import BloodTypes def uranai(blood_type: BloodTypes): """血液型占い""" match blood_type: case BloodTypes.A: print("大吉") case BloodTypes.B: print("中吉") case BloodTypes.O: print("小吉") case BloodTypes.AB: print("凶") case _: raise NotImplementedError()
match文はEnum専用というわけではなく、他にも色々使えるらしい。
Pythonってswitch文ないの!?と驚いていたけど、これは嬉しい。