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里的类。