8

perl Inline::Python ライブラリを学習しています。cpan Web サイトの例では、

   print "9 + 16 = ", add(9, 16), "\n";
   print "9 - 16 = ", subtract(9, 16), "\n";

   use Inline Python => <<'END_OF_PYTHON_CODE';
   def add(x,y): 
      return x + y

   def subtract(x,y):
      return x - y

   END_OF_PYTHON_CODE

ランタイムで Python コードを作成できるように、Python コードを文字列に入れることは可能ですか? たとえば、次のようなものです。

my $python_code = "
def add(x,y):
   return x + y
";
print $python_code;
use Inline Python => "$python_code";
print "9 + 16 = ", add(9, 16), "\n";

実行時に Python 関数を動的に作成するプロジェクトがあります。そして、これらの関数を呼び出したいと思います。py_eval() は行く方法ですか? 前もって感謝します。

4

1 に答える 1

5

の経験はありませんInline::PythonInline::C 、関数を使用bindして実行時にコードを設定できるため、おそらくこれでうまくいくでしょう:

my $python_code = "
def add(x,y):
   return x + y
";
print $python_code;
Inline->bind( Python => $python_code );
print "9 + 16 = ", add(9, 16), "\n";
于 2012-08-06T18:25:35.973 に答える