Как собирать типы контейнеров, созданные Python-C-Interface? - PullRequest
0 голосов
/ 01 мая 2019

При возврате PyBuildValue("iiii", i1, i2, i3, i4) в Python созданный кортеж из 4-х целых чисел будет собираться нормально, когда с ним будет сделано (например, del установлено или установлено на None). Но если я верну какие-либо типы контейнеров, например: Py_BuildValue("((ii),(ii))", i1, i2, i3, i4), то (по крайней мере) две поднаборы по 2 целых числа будут никогда не подвергаться сборке мусора.

Моя реальная ситуация намного сложнее ... и также не обязательно зависит от использования Py_BuildValue.

Мне нужно вернуть сложный объект Python, созданный в C, в код Python и убедиться, что этот объект доступен для сборки мусора.

Кто-нибудь с идеей / комментарием или даже решением по этому поводу?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...