Function 基于字符串调用不同的函数

Function 基于字符串调用不同的函数,function,coding-style,eval,Function,Coding Style,Eval,我甚至不确定这是否可能。 假设我定义了以下函数: a(), b(), c() 我想从命令行(a、b、c)获取用户输入,并根据输入调用相应的函数 但不使用cases或if 即: 这在任何语言中都存在吗 你当然可以这样做。例如,在Python中: def a(): return 'a' def b(): return 'b' def select_func(name): return eval(name)() 执行select_func('a')将返回'a',执行se

我甚至不确定这是否可能。 假设我定义了以下函数:

a(), b(), c()
我想从命令行(a、b、c)获取用户输入,并根据输入调用相应的函数

但不使用cases或if 即:


这在任何语言中都存在吗

你当然可以这样做。例如,在Python中:

def a():
    return 'a'

def b():
    return 'b'

def select_func(name):
    return eval(name)()

执行select_func('a')将返回'a',执行select_func('c')将引发异常

请确保您可以执行类似操作。例如,在Python中:

def a():
    return 'a'

def b():
    return 'b'

def select_func(name):
    return eval(name)()

执行select_func('a')将返回'a',执行select_func('c')将引发异常

如果不使用任何条件检查,如果通过命令行传递无效或不存在的函数名,会发生什么?我只能想象你的程序被炸成碎片。评论+1哦,这根本不是为了开发目的,更多的是出于好奇,如果可以做到的话,但你绝对是对的。还有伪存在吗?函数将理想地验证是否存在这样一个函数(类似于ruby中的respond_to?),您的if语句代码示例可以用ruby、Objective-C和PHP等多种语言完成。如果不使用任何条件检查,如果通过命令行传递无效或不存在的函数名,会发生什么情况?我只能想象你的程序被炸成碎片。评论+1哦,这根本不是为了开发目的,更多的是出于好奇,如果可以做到的话,但你绝对是对的。还有伪存在吗?函数将理想地验证是否存在这样一个函数(类似于ruby中的respond_to?),您的if语句代码示例可以用ruby、Objective-C和PHP等多种语言完成。但它确实是用来验证输入的。