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 で問題なく動作します。つまり、常に最後の行が返されます。
前もって感謝します。