如何將字符串轉換爲函數調用以獲取同一類中的函數?我用this這個問題來幫助一下,但我認爲它與「自我」有關。將字符串轉換爲具有相同類的函數調用
ran_test_opt = choice(test_options)
ran_test_func = globals()[ran_test_opt]
ran_test_func()
其中test_options是字符串格式中可用函數的名稱列表。與上面的代碼我得到的錯誤
KeyError: 'random_aoi'
如何將字符串轉換爲函數調用以獲取同一類中的函數?我用this這個問題來幫助一下,但我認爲它與「自我」有關。將字符串轉換爲具有相同類的函數調用
ran_test_opt = choice(test_options)
ran_test_func = globals()[ran_test_opt]
ran_test_func()
其中test_options是字符串格式中可用函數的名稱列表。與上面的代碼我得到的錯誤
KeyError: 'random_aoi'
不要使用globals()
(該功能在全局符號表),只需使用getattr
:
ran_test_func = getattr(self, ran_test_opt)
globals()
是一個函數,你應該非常非常少用,它混合了代碼和數據。通過在字符串中找到的名稱來調用一個實例方法是相似的,但是稍微不太好。使用getattr
:
ran_test_func = getattr(self, ran_test_opt)
ran_test_func()