雑念ストレージ

プログラミング関連のメモとか

【Python】Python3.10からmatch文が追加されて、Enumを if elif しなくてよくなった

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文ないの!?と驚いていたけど、これは嬉しい。