从x import y语句重写以使用import_module

时间:2013-10-07 14:35:30

标签: python python-import

我有一个现有的简单import语句如下:

from booking import Booking

我想通过importlib库重写以接受动态参数。

我的尝试是以下变体:

from importlib import import_module

mymodule = import_module("Booking", "booking")

这一切都引发了异常:

  

ImportError:没有名为Booking

的模块

1 个答案:

答案 0 :(得分:3)

我使用此函数从模块动态导入类:

def import_class(modulename, classname):
    ''' Returns imported class. '''
    try:
        return getattr(__import__(modulename, globals(), locals(), [classname], -1), classname)
    except AttributeError:
        print 'Error in importing class. "%s" has no class "%s"' % (modulename, classname)
        return None
    except ImportError as e:
        print 'Error in importing class: %s' % (e)
        return None