1. 程式人生 > >Python外掛機制實現

Python外掛機制實現

外掛機制是程式碼/功能反向依賴注入到主體程式的一種方法,編譯型語言通過動態載入動態庫實現外掛。對於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組合,主程式不需要做任何的更改就可以滿足變換的業務需求。