python外掛程式化開發

2021-09-24 02:15:41 字數 871 閱讀 2612

動態匯入

執行時,根據使用者需求(提供字串),找到模組的資源動態載入起來。

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 ...