"switch"/"case"用于确定要在 Python 中赋值的变量



我想使用a switch/case;结构以根据某些参数确定将值分配给哪个变量:

a, b = [init_val] * 2
# This doesn't exist in Python.
switch param
    case 'a':
        a = final_val
    case 'b':
        b = final_val

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

我可以坚持"如果/elif",但是由于我经常看到那个不错的字典解决方案(如上述问题中(,以根据某些参数确定输出,所以我很好奇是否有一个类似的解决方案,用于确定哪个变量(从一组变量中(为。

分配值

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

使用Python 3.10(2021(,您可以使用match -case构造。

a, b = [init_val] * 2
# This exists in Python 3.10+
match param:
    case 'a':
        a = final_val
    case 'b':
        b = final_val

最新更新