動態導入模塊:__import__、importlib、動態導入的使用場景


相關內容:

  • __import__
  • importlib
  • 動態導入的使用場景

 

首發時間:2018-02-23 16:06函數


__import__:

功能:

  • 是一個函數,能夠在須要的時候動態導入模塊

使用:

 

  • __import__(模塊名)
  • 但對於多級目錄,只會導入第一級image
  • 目錄結構:image
  • imageimage
mo1=__import__("des") mo2=__import__("child.child") mo3=__import__("child") print(mo1,mo2,mo3)#mo3與mo2相同

#同級目錄使用模塊對象來調用
mo1.B() mo1.fun2() #對於目錄下的,動態導入只會導入第一級目錄 mo2.child.A()#雖然沒有具體定義類體,但無錯就是成功
mo2.child.fun1() mo3.child.fun1()

 

 


importlib:

介紹:

  • 是一個模塊,能夠進行動態導入模塊

用法:

  • importlib.import_module("模塊名")
import importlib mo1= importlib.import_module('des') mo2= importlib.import_module('child.child') print(mo1,mo2)#mo2直接到child.child
 des_B= mo1.B() mo1.fun2() mo2.fun1()

 

 


動態導入模塊的使用場景:

  • 動態切換模塊
  • 使用反射判斷是否有對應類、方法,無則設置
import importlib mo3= importlib.import_module('child') def func4(): print(" run in func4") if hasattr(mo3,"child1"): print("yes") c=getattr(mo3,"child") else: #沒有則設置
    setattr(mo3,"func4",func4) mo3.func4()
  • 其餘。。。
相關文章
相關標籤/搜索