最終更新日 2024-06-21

hmPyの応用のAPI

概要

hmPy自体が備えている残りのAPIは8つです。

全ては「リスト」と「ディクショナリ」の値の取得・設定に関するものとなります。

似たような関数ですが、概念としてはたった1しかありません。

変数名 [ キー名 ]

このような添え字でアクセスできるオブジェクトの値を「取得」「設定」する関数です。

これらは無理に覚える必要はありませんが、

#_ = dllfuncw( #PY, "DoString", "aaa = [1,2,3,4,5,6]" );  // 配列を定義
#_ = dllfuncw( #PY, "SetNumVar", "tmpnum", 100 ); // 一旦tmpnumというグローバル変数に値を設定
#_ = dllfuncw( #PY, "DoString", "aaa[3] = tmpstr" ); // aaa[3]に値を設定

と記述するところを

#_ = dllfuncw( #PY, "DoString", "aaa = [1,2,3,4,5,6]" );  // 配列を定義

// aaaの添え字[3]に100を代入
#_ = dllfuncw( #PY, "SetNumItemOfList", "aaa", 3, 100 );

と記述できるということになります。
知っておくと記述が少し楽になるでしょう。

リストにアクセスする4つの関数(***OfList)

厳密には「リスト」だけではなく、「タプル」や「独自に自分で定義したオブジェクト」も含め、
「整数の添え字」でアクセス可能なモノ」全てが含まれます。

ディクショナリにアクセスする4つの関数(***OfDict)

厳密には「ディクショナリ」だけではなく、「独自に自分で定義したオブジェクト」も含め、
「文字列の添え字」でアクセス可能なモノ」全てが含まれます。

DestroyScope関数

多くのサンプルコードにおいて、秀丸マクロ内の最終部の「freedll」の直前にて

#_ = dllfuncw(#PY, "DestroyScope" );

と「IronPythonのスコープの破棄」がされています。
このように秀丸マクロから「hmPyのDestroyScope」を呼び出すと、
IronPython内に以下のように「DestroyScope」という関数が定義してあれば、
その関数も実行することが出来ます。

def DestroyScope():
    hm.debuginfo("DestroyScope")