c语言switch case语句_Python 函数代替 switch/case 语句?

因为Python有一流的函数,

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

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

先看普通版:

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

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

接下来看加强版:

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

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

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

6b5b06ba52655ed7be0299df6643df09.png

推荐阅读

Python 年度文章汇总

一篇让你直接入门的 Python 教程

Python中浅拷贝与深拷贝

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值