动态导入模块

应用场景:知道模块名的字符串形式,想导入模块,怎么办呢?

 

modname="aa"
from lib import modname

 因为aa是个字符串格式,所以没法导入aa.py 模块

Traceback (most recent call last):
  File "<encoding error>", line 2, in <module>
ImportError: cannot import name 'modname'

有两种可用的方法:

aa里面的程序:

class C:
    def __init__(self):
        self.name='Alex'

 

 官方建议的方法是第2种:

import importlib
aa=importlib.import_module("lib.aa")
print(aa.C().name)

 

posted on 2017-08-02 17:46  momo8238  阅读(120)  评论(0编辑  收藏  举报