Perl Inline :: Python模块,如何将代码放入字符串中

时间:2012-08-06 17:54:25

标签: python perl inline cpan

我正在学习perl Inline :: Python库。在cpan网站的例子中,我们有

   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()的方法吗?提前谢谢。

1 个答案:

答案 0 :(得分:4)

没有使用Inline::Python但使用Inline::C you can use the bind function to set code at runtime的经验,所以这可能会有效:

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";