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.
"
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,
}
Then the equivalent switch block is invoked:
(然后调用等效的开关块:)
options[num]()
This begins to fall apart if you heavily depend on fall through.
(如果你严重依赖于跌倒,这就开始分崩离析了。)
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…