我正在尝试将 Python 对象传递给 rust 并使用 Python 对象的字段执行操作。
Python:
class myclass(object):
def __init__(self):
self.a = 3
b = myclass()
print(b.a)
// 3
锈:
#[pyfn(m, "rust_obj")]
fn rust_obj_py(py: Python, x: PyObject) -> PyResult<PyObject> {
let y = x.clone_ref(py);
y.a += 2;
Ok(y)
}
从 Python 调用时的预期结果是:
c = rust_obj(b)
print(c.a)
// 5
而是在编译时出现 Rust 错误:
error[E0609]: no field `a` on type `pyo3::PyObject`
--> src\lib.rs:926:5
|
926 | y.a += 2;
| ^ unknown field
有没有办法在 rust 中列出对象字段和方法并操作字段?