3

Python から、Python オブジェクトを返す Rust 関数を呼び出したいと思います。

my_rust_module.my_function()  # => <object>

クラスのインスタンス化に関する PYO3 ガイドでは、このようなオブジェクトを としてインスタンス化する方法が説明されているため、この関数を作成する方法はわかりPyRefませんが、 からそのような参照を返す方法がわかりませんpyfunction

これは私がしようとしているものです:

#[pyfunction]
fn my_function(py: Python) -> PyRef {
    let gil = Python::acquire_gil();
    let py = gil.python();
    PyRef::new(py, MyStruct { }).unwrap()
}

ただし、PyRef有効な戻り値の型ではないようです (コンパイラーは「型引数の数が間違っています: 期待される 1、見つかった 0」)、および aPyRefを a などの返される可能性のあるものに変換する方法がわかりませんPyObject

4

1 に答える 1