【发布时间】:2014-11-25 21:15:28
【问题描述】:
如何从 C++ 中获取 PyObject 的引用计数?
有函数Py_INCREF和Py_DECREF可以增加/减少它,但我没有找到任何返回对象引用计数的函数。
我需要它来进行调试。
【问题讨论】:
标签: python c++ c python-c-api python-internals
如何从 C++ 中获取 PyObject 的引用计数?
有函数Py_INCREF和Py_DECREF可以增加/减少它,但我没有找到任何返回对象引用计数的函数。
我需要它来进行调试。
【问题讨论】:
标签: python c++ c python-c-api python-internals
每个对象的引用计数都存储在PyObject 本身的一个名为ob_refcnt 的变量中。您可以直接访问它。
typedef struct _object {
_PyObject_HEAD_EXTRA
Py_ssize_t ob_refcnt; # Reference count
struct _typeobject *ob_type;
} PyObject;
或者,您可以使用Py_REFCNT Macro。
【讨论】: