如何获取PyObject的引用计数

How to get reference count of a PyObject?

本文关键字:引用 PyObject 何获取 获取      更新时间:2023-10-16

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

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

我需要它进行调试。

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

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

或者,也可以使用Py_REFCNT宏。