Как получить счетчик ссылок PyObject
из C ++?
Есть функции Py_INCREF
а также Py_DECREF
которые увеличивают / уменьшают его, но я не нашел ни одной функции, которая бы возвращала счетчик объектов.
Мне это нужно для отладки.
Счетчик ссылок каждого объекта хранится в PyObject
сам в переменной ob_refcnt
. Вы можете получить прямой доступ к этому.
typedef struct _object {
_PyObject_HEAD_EXTRA
Py_ssize_t ob_refcnt; # Reference count
struct _typeobject *ob_type;
} PyObject;
Кроме того, вы можете использовать Py_REFCNT
макрос.