帮群友解决的一个问题

帮群友解决的一个问题

是这样的,今天做地铁的时候突然有一个群友在群里面说,在python里如何用一个变量来指定一个函数,并且运行.
然后简答解答了(办理离职.无所事事,原理其实很简单,就是映射name–>func的过程,第一反应呢就是装饰器,然后搞到一个dict里面.
写起来也非常容易,如果只是简单的使用,只需要下面这样:

fn_map={}
def regist(func):
    fn_map[func.__name__]=func

def call(name,*list,**args):
    return fn_map.get(name)(*list,**args)

然后用的时候直接

@regist
def add(x,y):
    return x+y

r=call('add',1,2)

就是这个样子,当然还可以写的更加好看,与用起来更加舒适.
比如可以写个Class 然后重写下__call____str__,这样就能注册到不同的对象里,也可以优化一下比如说要执行的函数不存在的时候的错误提示之类的东东,总之这都是很基础的东东.
当然这里不再多写,只是抛砖引玉.还希望搞测开的朋友们多多研究一下基础的语法和所谓的设计模式(都是骗人的
也希望大家写东西不要局限于语法/语言.
就是这个样子…

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值