我正在学习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()的方法吗?提前谢谢。
答案 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";