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の組み合わせを定義するだけで済み、メインプログラムは変更なしで変換されたビジネスニーズを満たすことができます。

補足知識:Kustoはpythonプラグインを使用します

プロセス全体では、pythonスクリプトを入力すると、kustoデータが自動的にpandasDataFrameに変換されます。

pythonスクリプトの出力は、列名と変数が変更されないままであるkustoテーブルに自動的に変換されます。

Pythonスクリプトとそれに続くKustoの出力

以下の点にご注意ください

  1. typeofは、pythonスクリプトの出力パラメーターです。

  2. typeofのデータタイプは、変数名と変数タイプを含め、pythonスクリプトによって出力されたpandas DataFrame列とまったく同じです。これらに一貫性がない場合、エラーが報告されます。

  3. typeofで、は多重入力のデータタイプを示します。たとえば、(、age:int)は、入力が出力に基づいて複数の年齢属性を持っていることを示します。

  4. pythonスクリプトの入力は、DataFrameに変換されたkustoテーブルであり、pythonスクリプトの変数名はdfです(自動的に照合されます)。同時に、結果として出力DataFrameに名前を付ける必要があり、プログラムは自動的に出力します。

  5. Pythonは、kargs ["topK"]の形式で外部パラメーターを受け入れることができます。kargsはパラメーターを渡すためのシステムのデフォルト変数であり、pythonスクリプトの最後にあるkustoはpack( "topK"、10)の形式で受け取ります。パラメーター

6 . pythonスクリプトは、kustoコードで直接記述するか、リンクの形式でアクセスできます。

  1. kustoのpythonはエンタープライズバージョンのanacondaを実行し、個人は必要なパッケージを簡単にインストールできないため、特定のパッケージを使用する場合は、最も基本的なパッケージで関数を作成することをお勧めします。 kustoランニングミラーのサンドボックスは、numpy、pd、tensorflow、keras、torch hdbscan、xgboost、その他の一般的なパッケージをサポートしています。

Pythonプラグインメカニズムの実装に関する上記の詳細な説明は、エディターによって共有されるすべてのコンテンツです。参照を提供したいと思います。

Recommended Posts

Pythonプラグインメカニズムの詳細な実装
Pythonガベージコレクションメカニズムの詳細な分析
gomokuプログラムのPython実装
Pythonインターフェース開発の実装手順の詳細な説明
pythonバックトラッキングテンプレートの詳細な説明
pythonシーケンスタイプの詳細な説明
pythonリストの逆トラバーサルの実装
IOU計算ケースのPython実装
word2vec操作のPython予備実装
pythonselenium操作cookieの実装
Pythonでの辞書の詳細な使用法
python3登録グローバルホットキーの実装
python学生管理システムの実装
python勾配降下アルゴリズムの実装
Pythonタートルライブラリ実装の基本的な分析
pythonでのJWTユーザー認証の実装
交差点のPython実装とIOUチュートリアル
PythonIOポート多重化の詳細な説明
Pythonクラスの動的バインディングの実装原則
Python仮想環境venvの使用法の詳細な説明
pythonコマンドの-uパラメーターの詳細な説明
Python推測アルゴリズムの問題の詳細な説明
Python3.9の7つの機能
python標準ライブラリOSモジュールの詳細な説明
Pythondecimalモジュールの使用法の詳細な説明
pythonがコンカレントメソッドをサポートする方法の詳細な説明
ファイルをダウンロードするためのPythonヘッドレスクローラーの実装
Pythonに基づくデータタイプの詳細な説明
AI自動マットサンプル分析のPython実装
手描き効果の例の共有のPython実装
pythonによる名刺管理システムの実装
Pythonを使用してKSを計算する詳細な例
Pythonは釣りマスターのゲーム実装を書きます
Python関数パラメータ分類の原理の詳細な説明
Pythonタイマースレッドプールの原理の詳細な説明
pythonに基づく名刺管理システムの実装
詳細なPythonIOプログラミング
Pythonプロセス制御の一般的なツールの詳細な説明
PythonWebページパーサーの使用例の詳細な説明
詳細なPythonループのネスト
Python構文の基本
Pythonガベージコレクションメカニズム
Pythonの基本構文
Pythonオブジェクトの属性アクセスプロセスの詳細な説明
pythonに基づく残りの問題の詳細な説明(%)
Pythonの基礎知識(1)
pythonのPrettytableモジュール
09.Python3の共通モジュール
Pythonの基盤を統合する(4)
Python(7)の基盤を統合する
pythonリスト(LIST)の深い理解
Pythonのタプルの添え字
wavファイルのPython分析
Python(6)の基盤を統合する
Python描画ローズ実装コード
PythonクローラーのJSの分析
栄光のパイソンキング壁紙
pythonプラグインをアンインストールする方法
Python(5)の基盤を統合する
Pythonサンドボックスエスケープの分析
Python3.10のいくつかの新機能