欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python插件機(jī)制實(shí)現(xiàn)詳解

 更新時(shí)間:2020年05月04日 17:29:23   作者:力為  
這篇文章主要介紹了Python插件機(jī)制實(shí)現(xiàn)詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

插件機(jī)制是代碼/功能反向依賴注入到主體程序的一種方法,編譯型語(yǔ)言通過(guò)動(dòng)態(tài)加載動(dòng)態(tài)庫(kù)實(shí)現(xiàn)插件。對(duì)于Python這樣的腳本語(yǔ)言,實(shí)現(xiàn)插件機(jī)制更簡(jiǎn)單。

機(jī)制

Python的__import__方法可以動(dòng)態(tài)地加載Python文件,即以某個(gè)py腳本的文件名作為__import__的參數(shù),在程序運(yùn)行的時(shí)候加載py腳本程序模塊。對(duì)應(yīng)的import關(guān)鍵字則是靜態(tài)加載依賴的py模塊。

描述

__import__() 函數(shù)用于動(dòng)態(tài)加載類和函數(shù) 。

如果一個(gè)模塊經(jīng)常變化就可以使用 __import__() 來(lái)動(dòng)態(tài)載入。

語(yǔ)法

__import__ 語(yǔ)法:

__import__(name[, globals[, locals[, fromlist[, level]]]])

參數(shù)說(shuō)明:

name -- 模塊名

需要?jiǎng)討B(tài)加載的py腳本若存放在任意的目錄下,則需要首先需要增加腳本查找路徑:

sys.path.append(modulePath)

應(yīng)用示例

# 增加查找路徑
sys.path.append(modulePath)
# 加載腳本
module = __import__(moduleName) 
# 保存腳本對(duì)象,否則會(huì)被析構(gòu)    
self.modules[moduleName] = module
# 調(diào)用插件中的方法初始化
module.InitModule(self) 

總結(jié)

使用插件機(jī)制可以實(shí)現(xiàn)高內(nèi)聚低耦合的程序。

在實(shí)踐中,我們處理的任務(wù)有若干的可執(zhí)行程序配合完成,可執(zhí)行程序可以是C++,.Net , Java,甚至其他腳本程序,這時(shí)候我們使用Python作為粘合劑,定義了主體的任務(wù)流程框架,使用插件機(jī)制動(dòng)態(tài)的注入需要執(zhí)行的任務(wù)。

另外當(dāng)在不同的情況下,需要使用不同的exe配合的時(shí)候,我們只需要用json定義需要的exe組合,主程序不需要做任何的更改就可以滿足變換的業(yè)務(wù)需求。

補(bǔ)充知識(shí):Kusto使用python plugin

整個(gè)流程為kusto的數(shù)據(jù)進(jìn)入python腳本時(shí)自動(dòng)轉(zhuǎn)化為pandas DataFrame,

python 腳本的輸出自動(dòng)轉(zhuǎn)化為kusto table,其中列名和變量都保持不變。

Python 腳本緊接著Kusto的輸出

注意以下幾點(diǎn)

1.typeof為python腳本輸出的參數(shù)

2.typeof 中的數(shù)據(jù)類型跟python腳本輸出pandas DataFrame列是完全一致的,包括變量名,變量類型,前后不一致的話會(huì)報(bào)錯(cuò)

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

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

5. python 中可以接受外界參數(shù),通過(guò) kargs["topK"]這樣的形式,kargs是系統(tǒng)默認(rèn)的傳遞參數(shù)的變量, 同時(shí)kusto在python腳本的最后通過(guò)pack("topK", 10)這樣的形式往python腳本中傳遞參數(shù)

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

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

以上這篇Python插件機(jī)制實(shí)現(xiàn)詳解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • pandas string轉(zhuǎn)dataframe的方法

    pandas string轉(zhuǎn)dataframe的方法

    下面小編就為大家分享一篇pandas string轉(zhuǎn)dataframe的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • Python中datetime模塊參考手冊(cè)

    Python中datetime模塊參考手冊(cè)

    Python處理時(shí)間和日期方面的模塊,主要就是datetime、time、calendar三個(gè)模塊的使用。下面這篇文章主要給大家介紹的是Python中的datetime模塊,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-01-01
  • Python matplotlib安裝和使用的完整教程

    Python matplotlib安裝和使用的完整教程

    Python Matplotlib是一個(gè)強(qiáng)大的數(shù)據(jù)可視化庫(kù),它允許用戶創(chuàng)建各種類型的靜態(tài)、動(dòng)態(tài)圖表和圖形,Matplotlib基于NumPy和Pandas等科學(xué)計(jì)算庫(kù),提供了豐富的繪圖選項(xiàng),本文介紹了Python matplotlib安裝和使用的完整教程,需要的朋友可以參考下
    2024-07-07
  • python通過(guò)socket查詢whois的方法

    python通過(guò)socket查詢whois的方法

    這篇文章主要介紹了python通過(guò)socket查詢whois的方法,涉及Python基于socket模塊進(jìn)行查詢的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-07-07
  • python使用正則來(lái)處理各種匹配問(wèn)題

    python使用正則來(lái)處理各種匹配問(wèn)題

    這篇文章主要介紹了python使用正則來(lái)處理各種匹配問(wèn)題,本文通過(guò)實(shí)例代碼給大家講解的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-12-12
  • 11個(gè)Python3字典內(nèi)置方法大全與示例匯總

    11個(gè)Python3字典內(nèi)置方法大全與示例匯總

    這篇文章主要給大家介紹了11個(gè)Python3字典內(nèi)置方法大全與示例的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • Python基礎(chǔ)之pip如何更換鏡像源

    Python基礎(chǔ)之pip如何更換鏡像源

    pip的源是指pip安裝包所依賴的索引地址,下面這篇文章主要給大家介紹了關(guān)于Python基礎(chǔ)之pip如何更換鏡像源的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-08-08
  • 在windows系統(tǒng)中實(shí)現(xiàn)python3安裝lxml

    在windows系統(tǒng)中實(shí)現(xiàn)python3安裝lxml

    本文主要給大家簡(jiǎn)單介紹了下在windows以及l(fā)inux系統(tǒng)中使用Python安裝LXML模塊的教程,非常簡(jiǎn)單實(shí)用,有需要的小伙伴可以參考下
    2016-03-03
  • Python tkinter模版代碼實(shí)例

    Python tkinter模版代碼實(shí)例

    這篇文章主要介紹了Python tkinter模版代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • python 實(shí)現(xiàn)多維數(shù)組轉(zhuǎn)向量

    python 實(shí)現(xiàn)多維數(shù)組轉(zhuǎn)向量

    今天小編就為大家分享一篇python 實(shí)現(xiàn)多維數(shù)組轉(zhuǎn)向量,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-11-11

最新評(píng)論