Самописный код на Python для Android с Chaquopy - PullRequest
0 голосов
/ 02 июля 2018

Я пытаюсь использовать прототип кода Python в приложении для Android, и я нашел Chaquopy в качестве возможной библиотеки.

Документация немного скудна, поэтому я хочу уточнить: могу ли я вызывать свои самописанные методы python (включая передачу переменных) в Java-коде Android с Chaquopy?

Если да, можно ли увидеть пример, как это работает? Мне бы очень хотелось увидеть пример, который особенно передает сложные объекты (а не только строки).

Спасибо!

1 Ответ

0 голосов
/ 02 июля 2018

Да, вы можете называть свой собственный код Python точно так же, как код библиотеки. Просто поместите ваши файлы Python в соответствующую директорию как , документация описывает .

Я не уверен, что вы подразумеваете под "сложными объектами", но вот несколько примеров передачи различных типов объектов в функцию 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);
...