\

Pythonはスイッチケースを直接サポートしていませんが、辞書マッピングを使用してスイッチケースのような機能を実装することができます。以下に、ネストしたスイッチケースの一例を示します。

def fun1_1():
    print("fun1_1")

def fun1_2():
    print("fun1_2")

def fun1_3():
    print("fun1_3")

def fun1(sub_case):
    sub_switch = {
        1: fun1_1,
        2: fun1_2,
        3: fun1_3
    }
    sub_switch.get(sub_case, default_case)()

def fun2_1():
    print("fun2_1")

def fun2_2():
    print("fun2_2")

def fun2_3():
    print("fun2_3")

def fun2(sub_case):
    sub_switch = {
        1: fun2_1,
        2: fun2_2,
        3: fun2_3
    }
    sub_switch.get(sub_case, default_case)()

def fun3_1():
    print("fun3_1")

def fun3_2():
    print("fun3_2")

def fun3_3():
    print("fun3_3")

def fun3(sub_case):
    sub_switch = {
        1: fun3_1,
        2: fun3_2,
        3: fun3_3
    }
    sub_switch.get(sub_case, default_case)()

def default_case():
    print("Unsupported case!")

main_switch = {
    1: fun1,
    2: fun2,
    3: fun3
}

if __name__ == "__main__":
    main_case = 2
    sub_case = 3
    main_switch.get(main_case)(sub_case)

このコードでは、fun1, fun2, fun3という3つの関数が定義されており、それぞれがさらにネストしたスイッチケースを持っています。これにより、main_casesub_caseの2つの条件に基づいて異なる関数を呼び出すことができます。

このように、Pythonでは辞書を使用して複雑な条件分岐を実装することが可能です。ただし、辞書内に関数を用意する必要があるため、簡潔な条件分岐には向いていない可能性があります。それぞれの状況に応じて最適な方法を選択しましょう。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です