前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python 函数代替 switch/case 语句?

Python 函数代替 switch/case 语句?

作者头像
Python知识大全
发布2020-02-21 15:42:37
1K0
发布2020-02-21 15:42:37
举报
文章被收录于专栏:Python 知识大全Python 知识大全

因为Python有一流的函数,

所以它们可以用来模拟 switch/case 语句。

纳尼 ?用函数还可以代替 switch/case 语句, 什么鬼操纵, 其实是可以的,大家仔细想一想 switch/case 相当于一个判断语句,我们可以通过 return 和 ambda 来实现,而且效率更高。

先看普通版:

代码语言:javascript
复制
def dispatch_if(operator, x, y):
    if operator == 'add':
        return x + y
    elif operator == 'sub':
        return x - y
    elif operator == 'mul':
        return x * y
    elif operator == 'div':
        return x / y
    else:
        return None

这应该是经常使用的模式。

接下来看加强版:

代码语言:javascript
复制
def dispatch_dict(operator, x, y):
    return {
        'add': lambda: x + y,
        'sub': lambda: x - y,
        'mul': lambda: x * y,
        'div': lambda: x / y,
    }.get(operator, lambda: None)()


>>> dispatch_if('mul', 2, 8)
16

>>> dispatch_dict('mul', 2, 8)
16

>>> dispatch_if('unknown', 2, 8)
None

>>> dispatch_dict('unknown', 2, 8)
None

一个字来概括 “高大上”!但是会有些人问 “这样写很麻烦啊,直接用判断语句岂不是简单方便吗”,在这里忽略了个问题,虽然直接使用判断语句很方便简单,但是执行效率低下,如果把它封装一个函数,这样执行起来效率高,进一步讲,哇 这哥们代码写的有水平。

一些更高级的小技巧,待续。。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-01-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python 知识大全 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档