如何获取PyObject的引用计数?

时间:2014-10-01 05:05:59

标签: python c++ c python-c-api python-internals

如何从C ++获取PyObject的引用计数?

有函数Py_INCREFPy_DECREF增加/减少它,但我没有找到任何返回对象引用计数的函数。

我需要它用于调试目的。

1 个答案:

答案 0 :(得分:12)

每个对象的引用计数存储在PyObject本身,名为ob_refcnt的变量中。您可以直接访问它。

typedef struct _object {
    _PyObject_HEAD_EXTRA
    Py_ssize_t ob_refcnt;          # Reference count
    struct _typeobject *ob_type;
} PyObject;

或者,您可以使用Py_REFCNT Macro