在堆上分配对象
**************

PyObject *_PyObject_New(PyTypeObject *type)
    *返回值：新的引用。*

PyVarObject *_PyObject_NewVar(PyTypeObject *type, Py_ssize_t size)
    *返回值：新的引用。*

PyObject *PyObject_Init(PyObject *op, PyTypeObject *type)
    *返回值：借入的引用。** 属于 稳定 ABI.*

   为新分配的对象 *op* 初始化它的类型和初始引用。 返回初始化后的对象。
   对象的其他字段不会被影响。

PyVarObject *PyObject_InitVar(PyVarObject *op, PyTypeObject *type, Py_ssize_t size)
    *返回值：借入的引用。** 属于 稳定 ABI.*

   它的功能和 "PyObject_Init()" 一样，并且会初始化变量大小对象的长度信
   息。

PyObject_New(TYPE, typeobj)

   使用 C 结构类型 *TYPE* 和 Python 类型对象 *typeobj*
   ("PyTypeObject*") 分配一个新的 Python 对象。 f未在该 Python 对象标
   头中定义的字段不会被初始化。 调用方将拥有对该对象的唯一引用（即引用
   计数将为 1）。 内存分配的大小由类型对象的 "tp_basicsize" 字段决定。

   请注意如果 *typeobj* 设置了 "Py_TPFLAGS_HAVE_GC" 则此函数将不适用。
   对于这样的对象，请改用 "PyObject_GC_New()"。

PyObject_NewVar(TYPE, typeobj, size)

   使用 C 结构类型 *TYPE* 和 Python 类型对象 *typeobj*
   ("PyTypeObject*") 分配一个新的 Python 对象。 未在该 Python 对象标头
   中定义的字段不会被初始化。 被分配的内存允许 *TYPE* 结构加 *typeobj*
   的 "tp_itemsize" 字段所给出的 *size* ("Py_ssize_t") 个字段。 这对于
   实现像元组这样能够在构造时确定其大小的对象来说很有用。 将字段数组嵌
   入到相同的内在分配中可减少内存分配的次数，这提高了内存管理效率。

   请注意如果 *typeobj* 设置了 "Py_TPFLAGS_HAVE_GC" 则此函数将不适用。
   对于这样的对象，请改用 "PyObject_GC_NewVar()"。

PyObject _Py_NoneStruct

   这个对象是像 "None" 一样的 Python 对象。它可以使用 "Py_None" 宏访问
   ，该宏的拿到指向该对象的指针。

参见:

  模块对象
     分配内存和创建扩展模块


一些已被弃用的别名
==================

这些是现有函数和宏的已处于 *soft deprecated* 状态的别名。 它们的存在只
是为了向下兼容。

+----------------------------------------------------+----------------------------------------------------+
| 已弃用的别名                                       | 函数                                               |
|====================================================|====================================================|
| PyObject_NEW(type, typeobj)                        | "PyObject_New"                                     |
+----------------------------------------------------+----------------------------------------------------+
| PyObject_NEW_VAR(type, typeobj, n)                 | "PyObject_NewVar"                                  |
+----------------------------------------------------+----------------------------------------------------+
| PyObject_INIT(op, typeobj)                         | "PyObject_Init()"                                  |
+----------------------------------------------------+----------------------------------------------------+
| PyObject_INIT_VAR(op, typeobj, n)                  | "PyObject_InitVar()"                               |
+----------------------------------------------------+----------------------------------------------------+
| PyObject_MALLOC(n)                                 | "PyObject_Malloc()"                                |
+----------------------------------------------------+----------------------------------------------------+
| PyObject_REALLOC(p, n)                             | "PyObject_Realloc()"                               |
+----------------------------------------------------+----------------------------------------------------+
| PyObject_FREE(p)                                   | "PyObject_Free()"                                  |
+----------------------------------------------------+----------------------------------------------------+
| PyObject_DEL(p)                                    | "PyObject_Free()"                                  |
+----------------------------------------------------+----------------------------------------------------+
| PyObject_Del(p)                                    | "PyObject_Free()"                                  |
+----------------------------------------------------+----------------------------------------------------+
