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_case
とsub_case
の2つの条件に基づいて異なる関数を呼び出すことができます。
このように、Pythonでは辞書を使用して複雑な条件分岐を実装することが可能です。ただし、辞書内に関数を用意する必要があるため、簡潔な条件分岐には向いていない可能性があります。それぞれの状況に応じて最適な方法を選択しましょう。