2014-02-26 45 views
0

如何將字符串轉換爲函數調用以獲取同一類中的函數?我用this這個問題來幫助一下,但我認爲它與「自我」有關。將字符串轉換爲具有相同類的函數調用

ran_test_opt = choice(test_options) 
ran_test_func = globals()[ran_test_opt] 
ran_test_func() 

其中test_options是字符串格式中可用函數的名稱列表。與上面的代碼我得到的錯誤

KeyError: 'random_aoi' 

回答

3

不要使用globals()(該功能在全局符號表),只需使用getattr

ran_test_func = getattr(self, ran_test_opt) 
1

globals()是一個函數,你應該非常非常少用,它混合了代碼和數據。通過在字符串中找到的名稱來調用一個實例方法是相似的,但是稍微不太好。使用getattr

ran_test_func = getattr(self, ran_test_opt) 
ran_test_func() 
相關問題