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 模块