DLunin
Cómo obtener el recuento de referencia de un PyObject
de C++?
hay funciones Py_INCREF
y Py_DECREF
que lo aumentan/disminuyen, pero no he encontrado ninguna función que devuelva el recuento de referencia del objeto.
Lo necesito para fines de depuración.
El recuento de referencia de todos y cada uno de los objetos se almacena en el PyObject
en sí mismo, en una variable llamada ob_refcnt
. Puede acceder directamente a eso.
typedef struct _object {
_PyObject_HEAD_EXTRA
Py_ssize_t ob_refcnt; # Reference count
struct _typeobject *ob_type;
} PyObject;
Como alternativa, puede utilizar el Py_REFCNT
Macro.
-
Será mejor que confíe en la macro que en los miembros internos de la estructura que probablemente no estén garantizados para no cambiar.
– Kapichu
8 mayo 2017 a las 22:23
¿Ha sido útil esta solución?
Tu feedback nos ayuda a saber si la solución es correcta y está funcionando. De esta manera podemos revisar y corregir el contenido.