带有Chaquopy的Android中的自写python代码

时间:2018-07-02 10:30:05

标签: java android python chaquopy

我尝试在Android应用中使用Python原型代码,但发现Chaquopy是一个可能的库。

文档有点稀疏,所以我想澄清一下:我可以使用Chaquopy在Android Java代码中调用我的自写python方法(包括传递变量)吗?

如果是,是否有可能看到一个示例? 看到一个特别传递复杂对象(不仅是字符串)的示例,我真的很感激。

谢谢!

1 个答案:

答案 0 :(得分:2)

是的,您可以完全像库代码一样调用自己的Python代码。只需将您的Python文件放在the documentation describes相应的目录中即可。

我不确定您是什么意思的“复杂对象”,但是这里有一些示例,这些示例将各种类型的对象传递到文件f中的Python函数mod.py中:

Python py = Python.getInstance();
PyObject mod = py.getModule("mod");

// If the function knows what methods and attributes to use, Java objects
// can be passed directly.
mod.callAttr("f", someJavaObject);

// If the function expects an iterable, Java arrays can be passed directly.
mod.callAttr("f", new String[] {"one", "two", "three"});

// If the function expects a dict, it can be created as follows.
PyObject builtins = py.getBuiltins();
PyObject d = builtins.callAttr("dict");
d.callAttr("__setitem__", 1, "a");
d.callAttr("__setitem__", 2, "b");
mod.callAttr("f", d);