switch / case,用于确定要在Python

时间:2018-03-29 00:19:04

标签: python switch-statement

我想使用“switch / case”结构来决定根据某个参数为哪个变量赋值:

a, b = [init_val] * 2
switch param
    case 'a':
        a = final_val
    case 'b':
        b = final_val

问题Replacements for switch statement in Python?中描述的字典方法在这里不起作用,因为你既不能分配函数调用

a, b = [init_val] * 2
switcher = {
    'a': a,
    'b': b
}
switcher.get(param) = final_val

也不通过将变量存储在字典中来更改变量的值:

switcher[param] = final_val # switcher['a'] is only a copy of variable a

我可以坚持使用“if / elif”,但由于我经常看到很好的词典解决方案(如前面提到的问题)来确定基于某些参数的输出,我很想知道是否有类似的用于确定一组变量中的哪个变量为其分配值的解决方案。

1 个答案:

答案 0 :(得分:0)

Python通常没有内置的开关/案例功能。相反,通常的做法是使用elif关键字:

a, b = [init_val] * 2
if param == 'a':
    a = final_val
elif param == 'b':
    b = final_val
else:
    pass # or do something else