python通过函数名调用函数
原理
eval函数用来执行一个字符串表达式,并返回表达式的值。
*args可以展开数组类型的参数。
**kwargs可以展开字典类型的参数。
示例代码
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 
 | mapa={}mapa["add"]=[1,4]
 mapa["sub"]=[5,2]
 mapa["add3"]=[2,3,5]
 
 mapb={}
 mapb["add"]={"a":1,"b":4}
 mapb["sub"]={"a":5,"b":2}
 mapb["add3"]={"a":2,"b":3,"c":5}
 
 
 def test_map_namecall():
 print("test")
 for name in mapa:
 res = eval(name)(*mapa[name])
 print("{} {} {}".format(name,mapa[name],res))
 
 print("test2")
 for name in mapa:
 res = eval(name)(**mapb[name])
 print("{} {} {}".format(name,mapb[name],res))
 return None
 
 
 def add(a,b):
 return a+b
 
 def sub(a,b):
 return a+b
 
 def add3(a,b,c):
 return a+b+c
 
 if __name__ == "__main__":
 test_map_namecall()
 
 
 | 
输出
