Reputation: 1070
How to get reference count of a PyObject
from C++?
There are functions Py_INCREF
and Py_DECREF
which increase/decrease it, but I haven't found any function which return object's reference count.
I need it for debugging purposes.
Upvotes: 17
Views: 6358
Reputation: 239473
The reference count of each and every object is stored in the PyObject
itself, in a variable called ob_refcnt
. You can directly access that.
typedef struct _object {
_PyObject_HEAD_EXTRA
Py_ssize_t ob_refcnt; # Reference count
struct _typeobject *ob_type;
} PyObject;
Alternatively, you can use the Py_REFCNT
Macro.
Upvotes: 21