Chaquopy 未初始化 class

Chaquopy not initializing class

当为 android 使用 chaquopy 时,从 java 调用模块不会 运行 __init__ 方法。

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

在没有构造函数的情况下创建对 python 的对象引用。有没有办法在没有额外的 "init" 函数并在创建后调用它的情况下做到这一点?

假设 utils.Utils 是一个模块,而 Utils 是该模块中的 class,您的代码只是获取对 class 的引用。如果你想实际实例化 class,你可以这样做:

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

或者这个:

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

如果要传递构造函数参数,只需将它们添加到callAttrcall的参数列表的末尾即可。

参见 the documentation 中的 ZipFile 示例。