CHAQUOPY - 将 Python 对象转换为 Kotlin 类

Posted

技术标签:

【中文标题】CHAQUOPY - 将 Python 对象转换为 Kotlin 类【英文标题】:CHAQUOPY - Convert Python Object to Kotlin class 【发布时间】:2021-12-17 10:13:09 【问题描述】:

在python文件中:

class Card:
    def __init__(self, name, costs):
        self.name = name
        self.costs = costs

def returnObj(string):
    card = Card(string, 2)
    return card

在 Kotlin 文件中:

val pyObject = pythonFile.callAttr("returnObj", "string")

如何将该 python 对象转换为 kotlin 类?我不知道如何使用 .toJava(Class) 方法,我试图在其中放置一个与 python 对象具有相同属性的 kotlin 类,但它给了我一个错误“没有足够的信息来推断类型变量 T”。

【问题讨论】:

【参考方案1】:

Chaquopy 不支持基于相同属性名称的类之间的转换。但是,它很容易支持直接从 Python 代码创建 Kotlin/Java 对象。

例如,如果您的 Kotlin 类是 com.example.Card,那么您可以将整个 Python Card 类替换为 from com.example import Card 行,returnObj 仍然可以正常工作。

然后在 Kotlin 中,你可以这样写:

val card = pythonFile.callAttr("returnObj", "string").toJava(Card::class.java)

【讨论】:

以上是关于CHAQUOPY - 将 Python 对象转换为 Kotlin 类的主要内容,如果未能解决你的问题,请参考以下文章

Camerax ImageCapture 传递给 Chaquopy 太慢了

使用 chaquopy 在 android studio 中集成 python 代码(对象检测代码)

TypeError 使用 chaquopy 调用 python 函数

使用 chaquopy 的 android studio 不支持 Python 模块

Android Chaquopy 没有这样的文件或目录:'ffprobe'

Android Studio 无法使用 chaquopy python 打开 COM 端口