使用 Chaquopy 在 Android 中自行编写的 python 代码
Self-written python code in Android with Chaquopy
我尝试在 Android 应用程序中使用原型 python 代码,我发现 Chaquopy 作为可能的库。
文档有点稀疏,所以我想澄清一下:我可以在 Android Java 代码中调用我自己编写的 python 方法(包括传递变量)吗?查科比?
如果是,是否可以查看其工作原理的示例?
看到一个特别传递复杂对象(不仅是字符串)的示例,我将不胜感激。
谢谢!
是的,您可以像调用库代码一样调用自己的 Python 代码。只需将 Python 文件放在适当的目录中,如 the documentation describes.
我不确定你指的是哪种 "complex objects",但这里有一些将各种类型的对象传递给文件中的 Python 函数 f
的示例 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);
我尝试在 Android 应用程序中使用原型 python 代码,我发现 Chaquopy 作为可能的库。
文档有点稀疏,所以我想澄清一下:我可以在 Android Java 代码中调用我自己编写的 python 方法(包括传递变量)吗?查科比?
如果是,是否可以查看其工作原理的示例? 看到一个特别传递复杂对象(不仅是字符串)的示例,我将不胜感激。
谢谢!
是的,您可以像调用库代码一样调用自己的 Python 代码。只需将 Python 文件放在适当的目录中,如 the documentation describes.
我不确定你指的是哪种 "complex objects",但这里有一些将各种类型的对象传递给文件中的 Python 函数 f
的示例 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);