Conteo de referencias
*********************

Los macros de esta sección se utilizan para administrar conteos de
referencia de objetos Python.

void Py_INCREF(PyObject *o)

   Incrementa el conteo de referencia para el objeto *o*. El objeto no
   debe ser "NULL"; si no está seguro de que no sea "NULL", use
   "Py_XINCREF()".

void Py_XINCREF(PyObject *o)

   Incrementa el conteo de referencia para el objeto *o*. El objeto
   puede ser "NULL", en cuyo caso el macro no tiene efecto.

void Py_DECREF(PyObject *o)

   Disminuye el conteo de referencia para el objeto *o*. El objeto no
   debe ser "NULL"; si no está seguro de que no sea "NULL", use
   "Py_XDECREF()". Si el conteo de referencia llega a cero, se invoca
   la función de desasignación del tipo de objeto (que no debe ser
   "NULL").

   Advertencia:

     La función de desasignación puede hacer que se invoque un código
     arbitrario de Python (por ejemplo, cuando se desasigna una
     instancia de clase con un método "__del__()"). Si bien las
     excepciones en dicho código no se propagan, el código ejecutado
     tiene acceso libre a todas las variables globales de Python. Esto
     significa que cualquier objeto al que se pueda acceder desde una
     variable global debe estar en un estado coherente antes de
     invocar "Py_DECREF()". Por ejemplo, el código para eliminar un
     objeto de una lista debe copiar una referencia al objeto
     eliminado en una variable temporal, actualizar la estructura de
     datos de la lista y luego llamar a "Py_DECREF()" para la variable
     temporal.

void Py_XDECREF(PyObject *o)

   Disminuye el conteo de referencia para el objeto *o*. El objeto
   puede ser "NULL", en cuyo caso el macro no tiene efecto; de lo
   contrario, el efecto es el mismo que para "Py_DECREF()", y se
   aplica la misma advertencia.

void Py_CLEAR(PyObject *o)

   Disminuye el conteo de referencia para el objeto *o*. El objeto
   puede ser "NULL", en cuyo caso el macro no tiene efecto; de lo
   contrario, el efecto es el mismo que para "Py_DECREF()", excepto
   que el argumento también se establece en "NULL". La advertencia
   para "Py_DECREF()" no se aplica con respecto al objeto pasado
   porque el macro usa cuidadosamente una variable temporal y
   establece el argumento en "NULL" antes de disminuir su conteo de
   referencia.

   Es una buena idea usar este macro siempre que disminuya el conteo
   de referencia de un objeto que pueda atravesarse durante la
   recolección de basura.

Las siguientes funciones son para la incorporación dinámica de Python
en tiempo de ejecución: "Py_IncRef(PyObject *o)", "Py_DecRef(PyObject
*o)". Simplemente son versiones de funciones exportadas de
"Py_XINCREF()" y "Py_XDECREF()", respectivamente.

Las siguientes funciones o macros son solo para uso dentro del núcleo
del intérprete: "_Py_Dealloc()", "_Py_ForgetReference()",
"_Py_NewReference()", así como la variable global "_Py_RefTotal".
