我尝试在Android应用中使用Python原型代码,但发现Chaquopy是一个可能的库。
文档有点稀疏,所以我想澄清一下:我可以使用Chaquopy在Android Java代码中调用我的自写python方法(包括传递变量)吗?
如果是,是否有可能看到一个示例? 看到一个特别传递复杂对象(不仅是字符串)的示例,我真的很感激。
谢谢!
答案 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);