我网上找到的都是不带参数调用的,带参数的怎么调用?
JavaDiv.py
import sys
import os
def JavaDiv(map):
return float(map['a'])/float(map['b']);
public class JPython {
public static String invoke(String dir,String filename,Map paras )
{
String result="";
JepConfig config = new JepConfig();
config.addIncludePaths(dir);
try (Interpreter interp = new SubInterpreter(config))
{
interp.eval("from "+filename+" import *");
result = interp.invoke(filename,paras).toString();
} catch (JepException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return result;
}
}
Map map = new HashMap();
map.put("a",3);
map.put("b",2);
Double.parseDouble(JPython.invoke("E:\\works\\eclipse\\2018\\Guild2Mod_\\src\\python","JavaDiv", map));
结果
result = interp.invoke(filename,paras).toString();
这里死活就报错
jep.JepException: <class 'TypeError'>: JavaDiv() got an unexpected keyword argument 'a'
我给的参数
按照这里给的呢,为什么死活报错呢?
感谢。
参数个数与参数值对应就行,我也弄了很久
def singular_ratio_check(var):
// interpreter.set("name", "zhangshan");
// interpreter.set("age", 18);