Python里面代替switch结构的方法
2018-09-19 本文已影响0人
波洛的汽车电子世界
程序里面要用到switch,查了一下,python居然没有这个语法,看了下官方文档,才知道,官方建议大家用if..elif...else来代替。如果分类实在太多,官方建议在函数里面构造字典映射,然后call function(value)来解决。
def function_1(value):
def function_2(value):
functions = {'a': function_1,
'b': function_2,
'c': function_3, ...}[x]
func = functions[value]
func()
一种更简单的方法是用lambda 来代替function。
functions = {
'a': lambda x: function_1(x),
'b': lambda x: function_2(x),
'c': lambda x: function_3(x)
}[x]
func = functions[value]
func()