動態匯入
執行時,根據使用者需求(提供字串),找到模組的資源動態載入起來。
sys=__import__('sys)等價於import sys
#在 xyz.py
class a:
def show(self0):
print('123')
#在 主程式模組
if __name__=="__main__":
mod=__import__('xyz')
cls=getattr(mod,'a')
cls().show()
#xyz.py
class a:
def show(self0):
print('123')
# 主程式模組
import importlib
def plugin(name:str,sep=':'):
m , _, c=name.partition(sep)
mod=importlib.import_module(m)
cls=getattr(mod,c)
return cls()
if __name__=='__main__':
a=plugin('xyz:a')
a.show()
外掛程式化程式設計技術
依賴的技術
反射:執行時獲取型別的資訊,可以動態維護型別資料
動態import:推薦使用importlib模組,實現動態import模組的能力
多執行緒:可以開啟乙個執行緒,等待使用者輸入,從而載入指定名稱的模組。
載入的時機
Python 外掛程式化開發
執行時,根據使用者需求 提供字串 找到模組的資源動態載入起來 import name,globals none,locals none,fromlist level 0 importlib.import module name,package none t8.py classa defshowme ...
Python 外掛程式化開發
1 動態匯入 執行時,根據使用者需求 提供字串 找到模組的資源動態載入起來。2 內建函式 import def import name,globals none,locals none,fromlist level 0 name 模組名 import語句本質上就是呼叫這個函式,但是不鼓勵直接使用它,...
元件化開發,外掛程式化開發和熱修復
外掛程式化開發和熱修復 所以外掛程式化比熱修復簡單,熱修復是在外掛程式化的基礎上在進行替舊的bug類 android元件化和外掛程式化開發 外掛程式化是在 執行時 而元件化是在 編譯時 換句話說,外掛程式化是基於多 apk 的,而元件化本質上還是只有乙個 apk。droidplugin small ...