Python中关于switch/case的实现

背景

Python中,用多了if/elif/else语句后,就疑惑为什么没有switch/case语句。

需求

需要了解有没有更高效的方式实现switch/case类似的功能?

分析

官方的示例附后,具体见参考1。大概意思是,用if/elif/else也可以实现,其实是想说,为什么不用字典呢?
怎么说呢,这种方式只要习惯就好。有人说switch/case比较难调试,可能目前使用有限吧,我只是觉得字典方式也没什么。

相比而言,字典方式更加灵活,可以动态添加条件。

通过这种方式,可以实现更强大的功能,比如方法、类,都可以扔到字典里,代码量还比switch/case少得多。

解决方案

返回值:

def str2icon(argument):
    mapper = {
        u"多云": u'\u26c5\ufe0f',
        u"阵雨": u'\U0001f326',
        u"晴": u'\u2600\ufe0f',
    }
    return mapper(argument, argument)

返回函数调用;

def case1(args):
    pass
def case2(args):
    pass
def case3(args):
    pass

switch={
    1: case1,
    2: case2,
    3: case3
}

switch[case](args)

其他

  1. 查了一些例子,发现lamada忘记咋用了,毕竟撂了一年多了……得抓起来。

参考

  1. Why isn’t there a switch or case statement in Python?

你可能感兴趣的:(Python中关于switch/case的实现)