You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Python互操作中如何将Mojo函数传递给Python?

在Mojo和Python互操作中传递Mojo函数到Python的解决办法

你碰到的这个错误,核心原因是Mojo函数不能直接传递给Python模块——Python无法识别原生的Mojo函数类型,必须先把它转换成Python兼容的对象。

修正后的代码示例

main.mojo

from python.python import Python

def callback() -> Int:
    return 5

def main():
    Python.add_to_path(".")
    let test_module = Python.import_module("lib")
    # 把Mojo函数转换为Python可识别的对象
    let py_callback = Python.to_python(callback)
    print(test_module.test_interop(py_callback))

lib.py(无需修改)

def test_interop(func):
    return func()

原理说明

Python.to_python()是Mojo Python互操作API提供的工具,它能将Mojo的函数(以及其他支持的类型)转换成Python可以调用的PythonObject,完美解决类型不匹配的问题。运行修改后的代码,就能正常输出5,不会再出现之前的类型转换错误。

内容的提问来源于stack exchange,提问作者HKTonyLee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 15:57:06