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("呼ばれました")