背景
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)
其他
- 查了一些例子,发现
lamada
忘记咋用了,毕竟撂了一年多了……得抓起来。