巧用python中eval()函数执行多个自定义函数

背景介绍

在写python项目的过程中,遇到了这样的一个问题。就是自己写的自定义函数较多,如果每一个函数都用普通的调用方式,太多了。所以,最后想办法解决这个问题。想到了利用python中的eval()函数结合for循环以及列表的形式来解决这个问题。

实现代码

def noParam():
    print('noparam')


def oneParam(param1):
    print(param1)


def twoParam(param1, param2):
    print(param1, param2)


funcList = ['noParam', 'oneParam', 'twoParam']
paramList = [[], ['1'], ['1', '2']]

for i in range(len(funcList)):
    if len(str(paramList[i])[1:-1]) == 0:
        eval('{}()'.format(funcList[i]))
    else:
        eval('{}({})'.format(funcList[i], str(paramList[i])[1:-1]))

总结

最开始一直在犹豫要不要写这个东西,因为这个东西觉得有的时候的确会用到,但是用的地方又不多。有一些鸡肋。而且这种方式适用于没有return的函数。如果有需要return,可以考虑在class中写def方法。然后利用class中的变量来储存值。当然,这并不是最棒的方法。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值