除了elif之外,是否有一种不那么垂直的方式在python中做一个select case?

时间:2015-08-18 13:09:10

标签: python select flow-control

所以我可以用

在python中做一个Select Case
if integer == 1:
  case0()
elif integer == 2:
  case2()
elif integer == 3:
  case3()
....
elif integer == N:
  caseN()

有时我使用索引作为选择器使用列表。

selectCase = [case0(),case1(),case3(),...,caseN()] [N]

但这会使列表中的每个项目在被选中之前被处理吗?

所以我想知道是否有其他方法可以做到这一点,而不需要跨越这么多来控制执行什么代码。 有没有办法跳转到部分代码?也许我不想解决一个功能,但只是跳过一些行。

由于

1 个答案:

答案 0 :(得分:3)

一种方法是利用您可以在字典中存储函数的事实:

functions = {
    1: case1,
    2: case2,
    ...
}

functions[case]() 

注意我没有在字典中使用括号。在列表中的示例中,您将存储函数的结果而不是函数本身。