case/switch语句的Python等价物是什么?

2024-04-18 06:43:06 发布

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

我想知道,对于case语句是否有一个Python等价物,比如VB.net或C#上提供的示例?


Tags: 示例net语句casevb
2条回答

直接替换是if/elif/else

然而,在许多情况下,有更好的方法可以在Python中实现。见“Replacements for switch statement in Python?”。

虽然official docs很高兴不提供开关,但我看到了solution using dictionaries

例如:

# define the function blocks
def zero():
    print "You typed zero.\n"

def sqr():
    print "n is a perfect square\n"

def even():
    print "n is an even number\n"

def prime():
    print "n is a prime number\n"

# map the inputs to the function blocks
options = {0 : zero,
           1 : sqr,
           4 : sqr,
           9 : sqr,
           2 : even,
           3 : prime,
           5 : prime,
           7 : prime,
}

然后调用等效的开关块:

options[num]()

如果你在很大程度上依赖于失败,这将开始崩溃。

相关问题 更多 >