Python里面代替switch结构的方法

程序里面要用到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()

你可能感兴趣的:(Python里面代替switch结构的方法)