我正在使用 Jython 2.5.1 和 JSR-223(即 javax.script 包),并且我希望返回 Python 脚本的最后一行。例如,评估此脚本后:
class Multiplier:
  def multiply(self, x, y):
    return x * y
Multiplier().multiply(5, 7)
我应该返回 35,但我得到的是 null。另一方面,它与其他测试一起使用:
5 * 7
我究竟做错了什么?
这是 Java 代码:
public static void main(String[] args) throws Exception {
    ScriptEngine engine = new ScriptEngineManager().getEngineByName("python");
    FileReader f = new FileReader("Multiplier.py");
    Object result = engine.eval(f);
    //assert(result == 35);
}
PS:它与 JRuby、Groovy 和 Rhino 一起工作得很好,即总是返回最后一行。
提前致谢。
我的程序出现以下问题:
File "C:/Users/6ixpage/Documents/SoftwareDevelopment/Python/Programs/CLI/
PrintandCopy/P&C Job System.py", line 75, in set
     eval('self.details['+a+'].'+b+'"'+c+'"');
File "<string>", line 1
     self.details[0].file = "image"
                          ^
SyntaxError: invalid syntax
以下是供参考的代码段:
IN = ('details','0','file','image')
if IN[0] == 'details':
    a = IN[1]
    b = IN[2]
    c = IN[3]
    print('self.details['+a+'].'+b+' = "'+c+'"');
    eval('self.details['+a+'].'+b+' = "'+c+'"');
IN[0] - 用于标识该命令指定文件夹的详细信息.*IN[1] - 文件夹中的任务.*IN[2] - 任务的属性(任何类型,文件,数量,计数).*IN[3] - 要将属性设置为的值.整个代码在这里,遗憾的是没有记录,因为我原本只想要一个简单的CUI设置.但如果您对特定片段有任何疑问,请先测试我.我也有纸质文档,它显示了该程序应该如何工作.
如果您可以建议对CUI如何工作进行一些更改,特别是如果它们会比我现在的头疼更少.(而且我确信我不必使用eval()每一个功能.)