接单时遇到的奇怪需求,在Java代码中调用Python文件中的某个函数,需要传递参数和接受结果。
实现方式如下:
1、引入依赖
<dependency>
<groupId>org.python</groupId>
<artifactId>jython-standalone</artifactId>
<version>2.7.0</version>
</dependency>
2、导入包
import org.python.core.PyFunction;
import org.python.core.PyInteger;
import org.python.core.PyObject;
import org.python.util.PythonInterpreter;
3、代码实现
public class Test {
public static void main(String[] args) {
int a = 2, b = 3;
// 创建Python解释器
PythonInterpreter interpreter = new PythonInterpreter();
// 设置Python文件路径
interpreter.execfile("./test.py");
// 获取要执行的Python函数
PyFunction pyFunction = interpreter.get("add", PyFunction.class);
// 传入参数并获取返回对象
PyObject py_obj = pyFunction.__call__(new PyInteger(a), new PyInteger(b));
System.out.println(py_obj);
}
}