关于python:将字符串转换为函数调用

Convert string into a function call

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

1
ran_test_opt ="random_aoi"

功能是

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

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

1
ran_test_opt()

它将运行随机的_Aoi函数。


当然可以,您可以使用globals

1
2
func_to_run = globals()[ran_test_opt]
func_to_run()

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

1
2
func_to_run = getattr(other_module, ran_test_opt)
func_to_run()