【问题标题】:Garbage collection for vector of object in PyO3PyO3中对象向量的垃圾收集
【发布时间】:2019-02-19 19:08:11
【问题描述】:

我有 2 个 pyclasses BlockBlockGroup

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

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

我是 PyO3 的新手,我已经阅读了关于垃圾收集的 documentation,但我并不完全了解它。

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

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

【问题讨论】:

    标签: python rust garbage-collection pyo3


    【解决方案1】:

    在这种情况下,BlockVec&lt;Block&gt; 分别是 rust 内存的一部分,而不是 python 的内存,所以你不必担心垃圾回收。 python内存中的一个对象例如是Py&lt;Block&gt;

    【讨论】:

      猜你喜欢
      • 2010-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多