我尝试在 Python 中实现 switch/case 机制。在阅读了几个网站和这里的问题(例如这个)之后,我构建了下面的代码。但它的行为是错误的,具有我所理解的 - 一个失败,这甚至可能是有问题的,当然不是默认的预期结果。
def something():
print 'something'
def somethingElse():
print 'something else'
def switch():
cases = {
0: something(),
1: something(),
2: something(),
3: something(),
4: something(),
5: something()
}
cases.get(2, somethingElse())
switch()
(显然,每种情况下的相同开关只是为了示例)
当我运行它时,我希望something()
只运行一次(因为我手动输入2
)。但是,控制台中的输出是:
something
something
something
something
something
something
something else
什么意思它运行了 6 次加上默认值运行。我无法理解这段代码中的什么允许这样的失败?或者问题可能不同?
这里是 Python 2.7.12。