Python3 动态导入模块的两种方式
动态导入模块就是只知道str类型的模块名字符串,通过这个字符串导入模块
需要导入的模块:
class Ccc(object):
def __init__(self,name):
self.name=name
目录结构:
第一种方式:python解释器内部使用,不建议用
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
module_name='import_lib.metaclass' #模块名的字符串
import_lib=__import__(module_name) #这是解释器自己内部用的
'''import_lib代表的其实是这个模块,而不是下面的metaclass'''
c=import_lib.metaclass.Ccc("Bert")#调用下面的方法
print(c.name) #运行结果:Bert
第二种方式:与上面效果一样,官方建议用这个
'''官方建议用这个'''
import importlib
module_name='import_lib.metaclass' #模块名的字符串
metaclass=importlib.import_module(module_name) #导入的就是需要导入的那个metaclass
c=metaclass.Ccc("Bert") #调用下面的方法
print(c.name) #运行结果:Bert