pythonic方式“默认”一个条件语句?

lte*_*e__ 2 python switch-statement python-3.x

我有一个具有多个级别的if-elif-else结构,但是最后一级else始终是同一条语句:

if statement1:
    if something:
        do_thing()
    elif something_else:
        if something_something:
            do_thing_something()
        elif somethingg:
            do_thingg()
        else:
            do_default()
    else:
        do_default()
else: 
    do_default()
Run Code Online (Sandbox Code Playgroud)

如您所见,我使用了do_default()3次,并且感觉有更好的方法。这基本上是一个defaultswitch-case其他语言中的语句,但是Python没有switch-case。我想知道是否还有其他方法可以更优雅地/“ Pythonly”解决此问题?还是使用字典或实现我自己的唯一方法switch-case

Dan*_*ejo 5

您可以尝试取消嵌套条件:

if statement1 and something:
    do_thing()
elif statement1 and something_else and something_something:
    do_thing()
elif statement1 and something_else and somethingg:
    do_thingg()
else:
    do_default()
Run Code Online (Sandbox Code Playgroud)