What is the Python equivalent for a case/switch statement?
This question already has an answer here:
While the official docs are happy not to provide switch, I have seen a solution using dictionaries.
For example:
# 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,
}
Then the equivalent switch block is invoked:
options[num]()
This begins to fall apart if you heavily depend on fall through.
The direct replacement is if
/ elif
/ else
.
However, in many cases there are better ways to do it in Python. See "Replacements for switch statement in Python?".
链接地址: http://www.djcxy.com/p/42752.html