用于调用函数的字符串

时间:2013-09-21 18:57:06

标签: python python-2.7 mod-wsgi

我有一个非常重要的问题。例如: 我需要根据给定的字符串导入一个模块,我使用类似

的东西
string = 'testmodule'
module = __import__(string)

它有效。现在我需要从给定字符串

中调用该模块中的函数
return module.function()

需要像以下一样工作:

string = 'function'
module = 'testmodule'
return module.string()

我知道我可以使用 exec ,我目前正在使用它

string = 'function'
module = 'testmodule'
exec('ret = ' + module + '.' + string + '()')

但是如果不使用那个exec方法怎么做呢,因为它太慢了?

1 个答案:

答案 0 :(得分:6)

使用getattr

module = __import__('module')
func = getattr(module, 'func')
func()

如果您不是更通用的解决方案,请查看此文件中的get_object函数。您可以提供完整路径:get_object('module.submodule.function')或相对路径和对象:get_object('submodule.function', module),它将返回所需的对象。