Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PyAny将Rust创建的对象从Python传递回Rust_Rust_Pyo3 - Fatal编程技术网

使用PyAny将Rust创建的对象从Python传递回Rust

使用PyAny将Rust创建的对象从Python传递回Rust,rust,pyo3,Rust,Pyo3,我在Rust中有一个struct+实现,返回Python。此对象也可以传递回Rust进行进一步的工作。(在我的实际代码中,我使用的是HashMap,但即使直接使用struct似乎也会导致相同的问题,因此为了简单起见,我的示例使用struct Person) 似乎我需要为Person执行从PyObject执行,但Rust找不到 #[pyclass] 结构人{ 名称:String, 年龄:u8, 高度_cm:f32, } impl pyo3::FromPYObjects此方法似乎不存在于任何发布版本

我在Rust中有一个struct+实现,返回Python。此对象也可以传递回Rust进行进一步的工作。(在我的实际代码中,我使用的是
HashMap
,但即使直接使用struct似乎也会导致相同的问题,因此为了简单起见,我的示例使用
struct Person

似乎我需要为Person执行
从PyObject执行
,但Rust找不到

#[pyclass]
结构人{
名称:String,
年龄:u8,
高度_cm:f32,
}

impl pyo3::FromPYObjects此方法似乎不存在于任何发布版本中。您正在查看代码的主分支,但可能正在使用已发布的版本。我建议您查看您实际使用的代码版本,或者查看文档。导入
downcast
的PR在四天前被合并:Arg,您是对的。(当前版本)具有
downcast\u ref
downcast\u mut
。使用它,我可以得到一个引用,如
let x:&Person=any.downcast_ref().unwrap()。我假设我也可以以某种方式再次获得所有权,但这可能是不可能的(因为Python也有一个引用),所以我显然必须创建一个新的值。