将字符串转换为函数调用

Mar*_*ong 5 python

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

ran_test_opt = "random_aoi"
Run Code Online (Sandbox Code Playgroud)

而且功能是

def random_aoi():
  logging.info("Random AOI Test").
Run Code Online (Sandbox Code Playgroud)

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

ran_test_opt()
Run Code Online (Sandbox Code Playgroud)

这将运行random_aoi函数.

mgi*_*son 9

当然,你可以使用globals:

func_to_run = globals()[ran_test_opt]
func_to_run()
Run Code Online (Sandbox Code Playgroud)

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

func_to_run = getattr(other_module, ran_test_opt)
func_to_run()
Run Code Online (Sandbox Code Playgroud)