久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術文章
文章詳情頁

Python插件機制實現詳解

瀏覽:68日期:2022-07-26 14:03:32

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

補充知識:Kusto使用python plugin

整個流程為kusto的數據進入python腳本時自動轉化為pandas DataFrame,

python 腳本的輸出自動轉化為kusto table,其中列名和變量都保持不變。

Python 腳本緊接著Kusto的輸出

Python插件機制實現詳解

注意以下幾點

1.typeof為python腳本輸出的參數

2.typeof 中的數據類型跟python腳本輸出pandas DataFrame列是完全一致的,包括變量名,變量類型,前后不一致的話會報錯

3.typeof 中*表示復用輸入的數據類型, 比如( *,age:int) 表示輸入在輸出的基礎上多個了age屬性

4. python腳本的輸入是轉化為DataFrame 的kusto table, 其在python腳本里的變量名為df(會自動匹配上), 同時我們要讓輸出的DataFrame 命名為result, 程序會自動輸出

5. python 中可以接受外界參數,通過 kargs['topK']這樣的形式,kargs是系統默認的傳遞參數的變量, 同時kusto在python腳本的最后通過pack('topK', 10)這樣的形式往python腳本中傳遞參數

Python插件機制實現詳解

6 .python腳本可以直接寫在kusto代碼中,也可以以鏈接的形式訪問

Python插件機制實現詳解

7. kusto 中的python運行企業版的anaconda上,個人沒法輕易安裝自己想要的包,所以如果要使用某些包,最好是將其功能用最基本的包寫好。kusto 運行鏡像的沙盒支持 numpy ,pd, 以及tensorflow ,keras ,torch hdbscan, xgboost 這些比較大眾的包

以上這篇Python插件機制實現詳解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 绥棱县| 富锦市| 大新县| 宝鸡市| 松潘县| 玛纳斯县| 敖汉旗| 文安县| 呈贡县| 台南市| 文山县| 天台县| 襄汾县| 中超| 安岳县| 勃利县| 兴海县| 博兴县| 鄂伦春自治旗| 远安县| 虹口区| 威信县| 山东省| 新龙县| 堆龙德庆县| 大渡口区| 阿巴嘎旗| 阳新县| 宣汉县| 镇巴县| 永吉县| 宁津县| 桂林市| 乐山市| 弥勒县| 莲花县| 客服| 黔东| 合阳县| 宕昌县| 庆阳市|