執行時, 根據使用者需求(提供字串), 找到模組的資源動態載入起來
__import__(name, globals=none, locals=none, fromlist=(), level=0)
importlib.import_module(name, package=none)
# t8.py
classa:
defshowme
(self)
:print
('test'
)# 主程式模組 t10.py
import importlib
defplugin
(plugin_name:
str, sep=
':')
: m, _, c = plugin_name.partition(sep)
mod = importlib.import_module(m)
cls =
getattr
(mod, c)
return cls(
)if __name__ ==
'__main__'
: a = plugin(
't8:a'
) a.showme(
)
什麼時候載入合適呢 ?
程式啟動的時候, 還是程式執行中呢 ?
兩種方式各有利弊, 如果外掛程式過多, 會導致程式啟動很慢, 如果使用者需要時再載入, 外掛程式太大或者依賴太多, 外掛程式啟動也會很慢
所以先載入必須的, 常用的外掛程式, 其他外掛程式使用時再動態載入
python外掛程式化開發
動態匯入 執行時,根據使用者需求 提供字串 找到模組的資源動態載入起來。sys import sys 等價於import sys 在 xyz.py class a def show self0 print 123 在 主程式模組 if name main mod import xyz cls get...
Python 外掛程式化開發
1 動態匯入 執行時,根據使用者需求 提供字串 找到模組的資源動態載入起來。2 內建函式 import def import name,globals none,locals none,fromlist level 0 name 模組名 import語句本質上就是呼叫這個函式,但是不鼓勵直接使用它,...
元件化開發,外掛程式化開發和熱修復
外掛程式化開發和熱修復 所以外掛程式化比熱修復簡單,熱修復是在外掛程式化的基礎上在進行替舊的bug類 android元件化和外掛程式化開發 外掛程式化是在 執行時 而元件化是在 編譯時 換句話說,外掛程式化是基於多 apk 的,而元件化本質上還是只有乙個 apk。droidplugin small ...