參照計數
********

The macros in this section are used for managing reference counts of
Python objects.

void Py_INCREF(PyObject *o)

   增加对象 *o* 的引用计数。 对象必须不为 "NULL"；如果你不确定它不为
   "NULL"，可使用 "Py_XINCREF()"。

void Py_XINCREF(PyObject *o)

   增加对象 *o* 的引用计数。 对象可以为 "NULL"，在此情况下该宏不产生任
   何效果。

void Py_DECREF(PyObject *o)

   减少对象 *o* 的引用计数。 对象必须不为 "NULL"；如果你不确定它不为
   "NULL"，可使用 "Py_XDECREF()"。 如果引用计数降为零，将发起调用对象
   所属类型的释放函数 (它必须不为 "NULL")。

   警告: The deallocation function can cause arbitrary Python code
     to be invoked (e.g. when a class instance with a "__del__()"
     method is deallocated).  While exceptions in such code are not
     propagated, the executed code has free access to all Python
     global variables. This means that any object that is reachable
     from a global variable should be in a consistent state before
     "Py_DECREF()" is invoked.  For example, code to delete an object
     from a list should copy a reference to the deleted object in a
     temporary variable, update the list data structure, and then call
     "Py_DECREF()" for the temporary variable.

void Py_XDECREF(PyObject *o)

   减少对象 *o* 的引用计数。 对象可以为 "NULL"，在此情况下该宏不产生任
   何效果；在其他情况下其效果与 "Py_DECREF()" 相同，并会应用同样的警告
   。

void Py_CLEAR(PyObject *o)

   减少对象 *o* 的引用计数。 对象可以为 "NULL"，在此情况下该宏不产生任
   何效果；在其他情况下其效果与 "Py_DECREF()" 相同，区别在于其参数也会
   被设为 "NULL"。 针对 "Py_DECREF()" 的警告不适用于所传递的对象，因为
   该宏会细心地使用一个临时变量并在减少其引用计数之前将参数设为 "NULL"
   。

   每当要减少在垃圾回收期间可能会被遍历的对象的引用计数时，使用该宏是
   一个好主意。

The following functions are for runtime dynamic embedding of Python:
"Py_IncRef(PyObject *o)", "Py_DecRef(PyObject *o)". They are simply
exported function versions of "Py_XINCREF()" and "Py_XDECREF()",
respectively.

The following functions or macros are only for use within the
interpreter core: "_Py_Dealloc()", "_Py_ForgetReference()",
"_Py_NewReference()", as well as the global variable "_Py_RefTotal".
