当使用 chaquopy for android 时,从 java 调用模块不会运行 __init__
方法。
PyObject utilModule = py.getModule("utils.Utils").get("Utils");
在没有构造函数的情况下创建对 python 的对象引用。如果没有额外的“init”函数并在创建后调用它,有没有办法做到这一点?
最佳答案
假设 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
的参数列表的末尾即可。
请参阅 the documentation 中的 ZipFile
示例.
关于android - Chaquopy 没有初始化类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56386722/