我正在学习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()是要走的路吗?提前谢谢。
发布于 2012-08-07 02:25:36
没有使用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";https://stackoverflow.com/questions/11833382
复制相似问题