Python没有直接支持case/switch结构,通常是通过 if / elif / else
来实现类似结构。
以下是一个采用字典来实现case/switch结构,值得借鉴:
# 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]()
另外一种巧妙的字典方法:
def f(x):
return {
'a': 1,
'b': 2,
}[x]
使用字典get(key[, default])方法
def f(x):
return {
'a': 1,
'b': 2
}.get(x, 9) # 9 is default if x not found