hmPython3の基礎中の基礎のAPI

概要

秀丸マクロから呼び出すhmPython3の関数(API)は多くありません。

ほとんどの場合は、「DoString」だけを使うこととなるでしょう。

  • 命令の実行:
     └ DoString(szexpression)

    文字列「szexpression」をPythonの命令として実行します。

    実行すら出来なかった場合は0が、とりあえず実行できた場合は1が返ってきます。

    • 1つのマクロ内で「DoString」は複数回実行可能、変数空間も同じ
      #PY = loaddll( hidemarudir + @"\hmPython3.dll" );
      
      #_ = dllfuncw( #PY, "DoString", R"PY(
      
      from hmPython import *
      
      aaa = "あいうお";
      
      def mysum(a, b):
        return a + b
      
      )PY"
      );
      
      
      #bbb = 123;
      
      #_ = dllfuncw( #PY, "DoString", R"PY(
      
      bbb = hm.Macro.Var['#bbb']
      ccc = aaa + "続いている" # 別のDoStringでも、aaa は引き続き利用できる。
      
      hm.Macro.Var['$ddd'] = ccc;
      
      hm.debuginfo( mysum(1,2) ); # 別のDoStringで定義した関数も当然利用できる。
      
      )PY"
      );
      
      message($ddd);
      
      freedll( #PY );
      



  • Pythonのステートをマクロに埋め込みたく無い場合:

    単純に Pythonのimport文を使ってください。

    • 「カレントフォルダ」のPythonファイルと、
    • 「今実行しているマクロファイルと同じディレクトリにあるPythonファイル」

    はimport することが出来ます。

    TestCall.mac
    #PY = loaddll( hidemarudir + @"\hmPython3.dll" );
    
    /// aaa.pyが、この
    #_ = dllfuncw( #PY, "DoString", "import aaa" );
    
    freedll( #PY );
    
    aaa.py
    from hmPython import *
    
    hm.debuginfo("呼ばれました")