What is the Python equivalent for a case/switch statement?
本问题已经有最佳答案,请猛点这里访问。
我想知道,对于case语句是否有一个python等价物,比如vb.net或c上提供的示例?
虽然官方文档不愿意提供转换,但我已经看到了使用字典的解决方案。
例如:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | # define the function blocks def zero(): print"You typed zero. " def sqr(): print"n is a perfect square " def even(): print"n is an even number " def prime(): print"n is a prime number " # map the inputs to the function blocks options = {0 : zero, 1 : sqr, 4 : sqr, 9 : sqr, 2 : even, 3 : prime, 5 : prime, 7 : prime, } |
然后调用等效开关块:
1 | options[num]() |
如果你严重依赖于摔倒,这就开始崩溃。
直接替换为
然而,在许多情况下,有更好的方法可以在Python中实现它。请参见"在python中替换switch语句?".