Сборка мусора для вектора объекта в PyO3 - PullRequest
0 голосов
/ 19 февраля 2019

У меня есть 2 pyclasses Block и BlockGroup.

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

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

Я новичок в PyO3, и я прочитал документацию о сборке мусора, но я неполностью проигнорируйте его.

Если вашему типу принадлежат ссылки на другие объекты python, вам нужно будет интегрироваться с сборщиком мусора Python, чтобы GC знал об этих ссылках.

Учитывая, что BlockGroup владеет конкретными Block объектами, нужно ли мне реализовывать пользовательскую сборку мусора?

1 Ответ

0 голосов
/ 19 июля 2019

В этом случае Block и Vec<Block> соответственно являются частью памяти ржавчины, а не памяти питона, поэтому вам не нужно беспокоиться о сборке мусора.Например, объект в памяти Python будет Py<Block>.

...