在Python开关案例中包含多个语句的最简洁的方法是什么?

2024-09-28 19:33:02 发布

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

与大多数其他流行的编程语言不同,Python没有内置的switch语句支持,所以我通常使用字典来模拟switch语句。在

我意识到,通过为每个case定义一个单独的嵌套函数,可以在case块中包含多个语句,但与其他语言中的switch语句相比,这相当冗长:

def switchExample(option):
    def firstOption():
        print("First output!")
        print("Second output!")
        return 1
    def secondOption():
        print("Lol")
        return 2
    options = {
    0 : firstOption,
    1 : secondOption,
    }[option]

    if(options != None):
        return options()

print(switchExample(0))
print(switchExample(1))

除了我已经编写的实现之外,有没有更简洁的方法来模拟Python中的switch语句?我注意到这个等效的JavaScript函数更简洁,更易于阅读,我希望Python版本也更简洁:

^{pr2}$

Tags: 函数outputreturndef语句编程语言内置options
2条回答

这里有一种老生常谈的解决方法,可以实现语法的近似:

def switch(option, blocks):
    for key in blocks:
        if key == option:
            exec blocks[key]

用法:

^{pr2}$

输出:

#2!!!
woot!
6

不幸的是,这里有很多撇号,而且缩进看起来很奇怪。在

作为一个快速而简单的解决方案,我只需使用if、elif和else来模拟switch语句。在

if option == 0:
    #your actions for option 0
elif option == 1:
    #your actions for option 1
else:
    #the default case

相关问题 更多 >