我有一个变量,它是函数的确切名称,但是以字符串格式。例如......
ran_test_opt = "random_aoi"
,功能是
def random_aoi():
logging.info("Random AOI Test").
从配置文件接收,因此无法更改。有没有办法可以将字符串转换为我可以调用函数的格式?即。
ran_test_opt()
将运行random_aoi函数。
答案 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()")
并且它会执行它