首页 文章

case / switch语句的Python等价物是什么? [重复]

提问于
浏览
302

这个问题在这里已有答案:

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

2 回答

  • 111

    直接替换是 if / elif / else .

    但是,在许多情况下,有更好的方法在Python中执行此操作 . 见“Replacements for switch statement in Python?” .

  • 420

    虽然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]()
    

    如果你严重依赖于跌倒,这就会开始分崩离析 .

相关问题