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

时间:2019-10-03 13:16:57

标签: python python-3.x switch-statement

我有一个具有多个级别的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次,我觉得有更好的方法。这基本上是其他语言的default语句中的switch-case,但Python没有switch-case。我想知道是否还有其他方法可以更优雅地/“ Pythonly”解决此问题? Or is the only way to use dicts or implement my own switch-case

3 个答案:

答案 0 :(得分: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()

答案 1 :(得分:1)

您可以将其打包成一个函数,并按以下方式编写

JmsServiceInitialiser

尽管您确实必须多次编写return

答案 2 :(得分:0)

将此块放入函数中可能会有所帮助:

OpenQA.Selenium