实现思路
- 定义函数映射:创建一个映射表,将函数名映射到对应的函数指针或函数对象。
- 获取函数:根据传入的函数名,从映射表中获取对应的函数。
- 处理参数:将传入的参数按照函数定义的参数类型进行转换和匹配。
- 调用函数:通过反射机制调用获取到的函数,并传递处理后的参数。
- 处理返回值:根据函数定义的返回值类型,对返回值进行处理和转换。
核心代码示例(以Python为例)
def func1(a, b):
return a + b
def func2(c, d):
return c * d
function_mapping = {
'func1': func1,
'func2': func2
}
def call_function(func_name, *args):
if func_name not in function_mapping:
raise ValueError(f"Function {func_name} not found")
func = function_mapping[func_name]
return func(*args)
# 调用示例
result1 = call_function('func1', 1, 2)
result2 = call_function('func2', 3, 4)
print(result1)
print(result2)
说明
- 首先定义了两个不同参数和返回值的函数
func1
和 func2
。
- 创建
function_mapping
字典,将函数名与函数对象进行映射。
call_function
函数根据传入的函数名从映射表中获取函数,并调用该函数,传递参数并返回结果。