Python 支持__import__() 方法来动态的导入module。其方法描述是:

__import__( name, globals, locals, fromlist)

静态的方式导入dispatcher

import dispatcher

对应__import__()方法应该是:

name = 'dispatcher'
ds = __import__('dispatcher')

当包含package后通常的举一反三则出来:

from package import dispatcher

则应该是:

name='package.dispatcher'
ds = __import__('package', fromlist=['dispatcher'])

然后,如果包含了多个层次,如下:

from package.module import dispatcher

那么用__import__()方法就无法达到要求了。需要用getattr(module,class)来获取具体在module里的类。例如上例则可被动态的导入为:

name = 'package.module'
module = __import__(name, fromlist=['dispatcher'])
ds = getattr(module,'dispatcher')

这样才能得到特定的在module里的类。