1

所以我可以在 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]

但这使得列表中的每个项目在被选中之前都要被处理,对吗?

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

谢谢

4

1 回答 1

3

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

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

functions[case]() 

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

于 2015-08-18T13:14:15.420 回答