0

伙计们,我想导入 python 文件和动态函数。模块名应该像这样传递给一个函数:

def scrape(url, foo):
    modulename = url['modulename']
    import modulename
    modulename.modulename(url, foo)

这是错误的:

ImportError: No module named modulename

那么我们怎样才能让python使用'modulename'作为变量呢?

谢谢!

4

2 回答 2

5

您可以使用importlib.import_module()

def scrape(url, foo):
    import importlib
    modulename = importlib.import_module(url["modulename"])
    modulename.modulename(url, foo)
于 2013-11-14T16:25:31.220 回答
1

你也可以使用

module = __import__('module_name')

例子:

module = __import__('math')
print module.sqrt(4)
>> 2

或者,如果您还想使用动态方法名称

module = __import__('math')
method =  getattr(module, 'sqrt')
method(4)
>> 2
于 2013-11-14T16:27:41.230 回答