我正在尝试在Rust中实现类似图的结构,并使用Pyo3将其暴露给Python。
假设我具有以下变量和图形类型:
#[pyclass]
struct PyVariable {
var: Variable
}
#[pymethods]
impl PyVariable {
#[new]
pub fn new(obj: &PyRawObject) {
obj.init({
PyVariable {
var: Variable {}
}),
});
}
}
#[pyclass]
struct PyGraph {
graph: Graph
}
#[pymethods]
impl PyGraph {
#[new]
pub fn new(obj: &PyRawObject) {
obj.init({
PyGraph {
graph: Graph::new()
}),
});
}
pub fn add_variable(&mut self, py_var: &mut PyVariable) {
self.graph.add_variable(py_var.var);
///here I would like to give the PyVariable a reference to the PyGraph
}
}
我希望该用户创建一个PyGraph,创建一个PyVariable,并将变量添加到图形中。
在这一点上,我想在PyVariable中存储对PyGraph的引用(一个Py<PyGraph>
?),以便该变量知道它所指向的图(并且以后可以在其中访问该变量的属性)。该图直接通过PyVariable)。
这可能吗?非常感谢您的回答。