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

2024-09-30 05:15:26 发布

您现在位置:Python中文网/ 问答频道 /正文

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


Tags: 方法defaultif语句级别结构doelse
3条回答

将此块拉入函数可能有助于:

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

你可以把它打包成一个函数,然后按照

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

虽然你必须写多次返回

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

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

相关问题 更多 >

    热门问题