将字符串转换为函数调用

时间:2014-02-25 16:58:26

标签: python

我有一个变量,它是函数的确切名称,但是以字符串格式。例如......

ran_test_opt = "random_aoi"

,功能是

def random_aoi():
  logging.info("Random AOI Test").

从配置文件接收,因此无法更改。有没有办法可以将字符串转换为我可以调用函数的格式?即。

ran_test_opt()

将运行random_aoi函数。

2 个答案:

答案 0 :(得分:9)

当然,您可以使用globals

func_to_run = globals()[ran_test_opt]
func_to_run()

或者,如果它位于不同的模块中,您可以使用getattr

func_to_run = getattr(other_module, ran_test_opt)
func_to_run()

答案 1 :(得分:0)

还有另一种方法可以从它的字符串表示中调用函数,只需使用 eval("func()") 并且它会执行它