动态导入模块就是只知道str类型的模块名字符串,通过这个字符串导入模块
需要导入的模块:
#!/usr/bin/env python # _*_ coding:utf-8 _*_ # Author:CarsonLi class Ccc(object): def __init__(self,name): self.name=name
目录结构:
第一种方式:python解释器内部使用,不建议用
#!/usr/bin/env python # _*_ coding:utf-8 _*_ # Author:CarsonLi '''Python 解释器内部动态导入方式''' module_name='import_lib.metaclass' #模块名的字符串 import_lib=__import__(module_name) #这是解释器自己内部用的 '''import_lib代表的其实是这个模块,而不是下面的metaclass''' c=import_lib.metaclass.Ccc("Bert")#调用下面的方法 print(c.name) #运行结果:Bert
第二种方式:与上面效果一样,官方建议用这个
#!/usr/bin/env python # _*_ coding:utf-8 _*_ # Author:CarsonLi '''官方建议用这个''' import importlib module_name='import_lib.metaclass' #模块名的字符串 metaclass=importlib.import_module(module_name) #导入的就是需要导入的那个metaclass c=metaclass.Ccc("Bert") #调用下面的方法 print(c.name) #运行结果:Bert