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

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

  • 替代Python中的switch语句? 44个答案

  • 虽然官方文档很乐意不提供切换,但我看到了使用字典的解决方案。

    例如:

    # define the function blocks
    def zero():
        print "You typed zero.n"
    
    def sqr():
        print "n is a perfect squaren"
    
    def even():
        print "n is an even numbern"
    
    def prime():
        print "n is a prime numbern"
    
    # 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]()
    

    如果你严重依赖跌倒,这会开始崩溃。


    直接替换是if / elif / else

    但是,在很多情况下,有更好的方法可以在Python中完成。 请参阅“替换Python中的switch语句?”。

    链接地址: http://www.djcxy.com/p/42751.html

    上一篇: What is the Python equivalent for a case/switch statement?

    下一篇: Convert iCal to HTML or plaintext in Java