首页 > 解决方案 > “默认”条件语句的 Pythonic 方式?

问题描述

我有一个具有多个级别的 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()

如您所见,我使用do_default()了3次,我觉得有更好的方法。这基本上是其他语言的defaultinswitch-case语句,但 Python 没有switch-case. 我想知道是否有任何其他方法可以更优雅/“Pythonically”解决这个问题?或者是使用 dicts 或实现我自己的唯一方法switch-case

标签: pythonpython-3.xswitch-statement

解决方案


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

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()

推荐阅读