“默认”条件语句的Python方法?

问题描述 投票:2回答:3

我有一个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

python python-3.x switch-statement
3个回答
3
投票
您可以尝试取消嵌套条件:

switch-case


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

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

尽管您必须多次编写返回值

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

def wrapper(args): if statement1: if something: return do_thing() elif something_else: if something_something: return do_thing_something() elif somethingg: return do_thingg() do_default()

© www.soinside.com 2019 - 2024. All rights reserved.