2014-02-25 38 views
2

我有一個變量,它是一個函數的確切名稱,但是以字符串格式。例如...將字符串轉換爲函數調用

ran_test_opt = "random_aoi" 

和功能是

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

的是從一個配置文件接收到的,因此不能被改變。有沒有一種方法可以將字符串轉換爲可以調用該函數的格式?即

ran_test_opt() 

它將運行random_aoi函數。

回答

6

當然,你可以使用globals

func_to_run = globals()[ran_test_opt] 
func_to_run() 

或者,如果是在不同的模塊,你可以使用getattr

func_to_run = getattr(other_module, ran_test_opt) 
func_to_run()