動態導入模塊__import__("str")
阿新 • • 發佈:2018-06-18
zhang 字符串 hide style fin getname 形式 exe 模塊名 解釋器內部使用的為__import__(‘str‘)
#!/usr/bin/env python # Author:Zhangmingda print(‘我是aa類 ‘) #被import的時候就執行 class A(object): def __init__(self): self.name = ‘張銘達‘ def getname(self): print(‘我是方法getname‘)lib目錄下的aa.py
#!/usr/bin/env python # Author:Zhangmingda modname = ‘lib.aa‘ #模塊名的字符串形式lib目錄同級的 動態導入模塊.pymodlib = __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:\Users\Administrator\Desktop\Python3_study\venv\Scripts\python.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)標準庫:importlib.py# aa_obj.getname() aa = importlib.import_module(modname) aa_obj = aa.A() print(aa_obj.name)
C:\Users\Administrator\Desktop\Python3_study\venv\Scripts\python.exe C:/Users/Administrator/Desktop/Python3_study/day7/動態導入模塊.py
我是aa類
張銘達
Process finished with exit code 0
輸出:
動態導入模塊__import__("str")