switch / case,用于确定要在Python中分配的变量

switch/case for determining variable to assign to in Python

我想使用"switch/case"结构来决定根据某些参数将值赋给哪个变量:

1
2
3
4
5
6
a, b = [init_val] * 2
switch param
    case 'a':
        a = final_val
    case 'b':
        b = final_val

python中switch语句的问题替换中描述的dictionary方法?在这里不工作,因为您不能分配给函数调用

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

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

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

我可以坚持使用"if/elif",但由于我经常看到一个很好的字典解决方案(如前面的问题中所述),用于根据某个参数确定输出,所以我很好奇,是否有一个类似的解决方案来确定在一组变量中要为哪个变量赋值。


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

1
2
3
4
5
6
7
a, b = [init_val] * 2
if param == 'a':
    a = final_val
elif param == 'b':
    b = final_val
else:
    pass # or do something else