Chaquopy не инициализирует класс - PullRequest
1 голос
/ 31 мая 2019

При использовании chaquopy для Android вызов модуля из java не запускает метод __init__.

PyObject utilModule = py.getModule("utils.Utils").get("Utils");

Создает ссылку на объект python без конструктора.Есть ли способ сделать это без дополнительной функции init и вызова после создания?

1 Ответ

1 голос
/ 31 мая 2019

Предполагая, что utils.Utils - это модуль, а Utils - это класс в этом модуле, ваш код просто получает ссылку на этот класс. Если вы хотите создать экземпляр класса, вы можете сделать следующее:

PyObject utilObj = py.getModule("utils.Utils").callAttr("Utils");

или это:

PyObject utilClass = py.getModule("utils.Utils").get("Utils");
PyObject utilObj = utilClass.call();

Если вы хотите передать параметры конструктора, просто добавьте их в конец списка параметров callAttr или call.

См. Пример ZipFile в документации .

...