gpt4 book ai didi

java - 使用 Chaquopy 将多个列表从 Python 返回到 Java

转载 作者:行者123 更新时间:2023-12-04 13:12:17 33 4
gpt4 key购买 nike

如何将多个列表、值等从我的 Python 脚本返回到 Java 而不会以单个对象结束?现在,我以一个包含两个返回值的 PyObject 结束,但我还没有想出如何在 Java 中再次将它们分开。

python :

import random

def calculations():

res1 = [33, 13, 20, 34]

list = [1,3,5,7]
res2 = random.choices(list, k=10000)

return res1, res2

Java:

if(!Python.isStarted())
Python.start(new AndroidPlatform(getActivity()));

Python py = Python.getInstance();


PyObject obj = py.getModule("main").callAttr("calculations");

# How to extract the different objects from obj? Tried the following without success.
List<PyObject> totList = obj.call(0).asList();
int[] data3 = obj.call(1).toJava(int[].class);

最佳答案

作为the documentation说,call 等同于 Python () 语法。但是元组(这是 calculations 返回的)是不可调用的,所以我假设这是你收到的错误。

相反,你应该这样做:

List<PyObject> obj = py.getModule("main").callAttr("calculations").asList();
int[] res1 = obj.get(0).toJava(int[].class);
int[] res2 = obj.get(1).toJava(int[].class);

关于java - 使用 Chaquopy 将多个列表从 Python 返回到 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63952293/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com