解释器内部使用的为__import__('str')
#!/usr/bin/env python # Author:Zhangmingda print('我是aa类 ') #被import的时候就执行 class A(object): def __init__(self): self.name = '张铭达' def getname(self): print('我是方法getname')
#!/usr/bin/env python # Author:Zhangmingda modname = 'lib.aa' #模块名的字符串形式 modlib = __import__(modname) #通过字符串获取模块,获取到的模块名字为字符串形式点号.以前的部分(本例为“lib”) modaa = modlib.aa #获取到以后就可以各种调用赋值了 aa_obj = modaa.A() #这个aa模块里面有个类名A,调用方法也可以直接写为:aa_obj = modlib.aa.A()从而省去一步 print(aa_obj.name) aa_obj.getname()
C:UsersAdministratorDesktopPython3_studyvenvScriptspython.exe C:/Users/Administrator/Desktop/Python3_study/day7/动态导入模块.py
我是aa类
张铭达
我是方法getname
Process finished with exit code 0
官方建议使用:
#!/usr/bin/env python # Author:Zhangmingda import importlib modname = 'lib.aa' #模块名的字符串形式 # modlib = __import__(modname) #通过字符串获取模块,获取到的模块名字为字符串形式点号.以前的部分(本例为“lib”) # modaa = modlib.aa #获取到以后就可以各种调用赋值了 # aa_obj = modaa.A() #这个aa模块里面有个类名A,调用方法也可以直接写为:aa_obj = modlib.aa.A()从而省去一步 # print(aa_obj.name) # aa_obj.getname() aa = importlib.import_module(modname) aa_obj = aa.A() print(aa_obj.name)
C:UsersAdministratorDesktopPython3_studyvenvScriptspython.exe C:/Users/Administrator/Desktop/Python3_study/day7/动态导入模块.py
我是aa类
张铭达
Process finished with exit code 0