Python外掛機制實現
阿新 • • 發佈:2018-12-10
外掛機制是程式碼/功能反向依賴注入到主體程式的一種方法,編譯型語言通過動態載入動態庫實現外掛。對於Python這樣的指令碼語言,實現外掛機制更簡單。
機制
Python的__import__方法可以動態地載入Python檔案,即以某個py指令碼的檔名作為__import__的引數,在程式執行的時候載入py指令碼程式模組。對應的import關鍵字則是靜態載入依賴的py模組。
描述
__import__() 函式用於動態載入類和函式 。
如果一個模組經常變化就可以使用 __import__() 來動態載入。
語法
__import__ 語法:
__import__(name[, globals[, locals[, fromlist[, level]]]])引數說明:
- name -- 模組名
需要動態載入的py指令碼若存放在任意的目錄下,則需要首先需要增加指令碼查詢路徑:
sys.path.append(modulePath)
應用示例
# 增加查詢路徑
sys.path.append(modulePath)
# 載入指令碼
module = __import__(moduleName)
# 儲存指令碼物件,否則會被析構
self.modules[moduleName] = module
# 呼叫外掛中的方法初始化
module.InitModule(self)
總結
使用外掛機制可以實現高內聚低耦合的程式。在實踐中,我們處理的任務有若干的可執行程式配合完成,可執行程式可以是C++,.Net , Java,甚至其他指令碼程式,這時候我們使用Python作為粘合劑,定義了主體的任務流程框架,使用外掛機制動態的注入需要執行的任務。另外當在不同的情況下,需要使用不同的exe配合的時候,我們只需要用json定義需要的exe組合,主程式不需要做任何的更改就可以滿足變換的業務需求。