PyO3中对象向量的垃圾收集

时间:2019-02-19 19:08:11

标签: python rust garbage-collection pyo3

我有2个pyclass BlockBlockGroup

#[pyclass]
struct Block {
    start: i32,
    stop: i32,
}

#[pyclass]
struct BlockGroup {
    blocks: Vec<Block>
}

我是PyO3的新手,我已经读过documentation有关垃圾回收的信息,但是我并没有完全理解它。

  

如果您的类型拥有对其他python对象的引用,则需要   与Python的垃圾收集器集成,以便GC知道   这些参考。

鉴于BlockGroup拥有具体的Block对象,我是否需要实现自定义垃圾收集?

1 个答案:

答案 0 :(得分:0)

在这种情况下,BlockVec<Block>分别是rust的内存而不是python的内存,因此您不必担心垃圾回收。 python内存中的对象例如是Py<Block>