動態導入模塊:__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()
  • 其他。。。

 



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM