背景介绍
在写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中的变量来储存值。当然,这并不是最棒的方法。
本文介绍了在Python项目中如何通过eval函数结合for循环和列表,以更简洁的方式调用多个自定义函数。示例代码展示了如何根据参数列表动态执行noParam、oneParam和twoParam等函数。这种方法适用于无返回值的函数,若需返回值,可考虑在类中定义方法并通过类变量存储结果。虽然实用但不常用,且可能存在安全性问题。
1347

被折叠的 条评论
为什么被折叠?



