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

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

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

PyObject *PyObject_Init(PyObject *op, PyTypeObject *type)
    *返回值：借入的引用。** Part of the Stable ABI.*

   用它的类型和初始引用来初始化新分配对象 *op*。返回已初始化的对象。如
   果 *type* 明该对象参与循环垃圾检测器，则将其添加到检测器的观察对象
   集中。 对象的其他字段不受影响。

PyVarObject *PyObject_InitVar(PyVarObject *op, PyTypeObject *type, Py_ssize_t size)
    *返回值：借入的引用。** Part of the Stable ABI.*

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

TYPE *PyObject_New(TYPE, PyTypeObject *type)
    *返回值：新的引用。*

   Allocate a new Python object using the C structure type *TYPE* and
   the Python type object *type*.  Fields not defined by the Python
   object header are not initialized. The caller will own the only
   reference to the object (i.e. its reference count will be one). The
   size of the memory allocation is determined from the "tp_basicsize"
   field of the type object.

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

   使用C的数据结构类型 *TYPE* 和Python的类型对象 *type* 分配一个新的
   Python对象。Python对象头文件中没有定义的字段不会被初始化。被分配的
   内存空间预留了 *TYPE* 结构加 *type* 对象中 "tp_itemsize" 字段提供的
   *size* 字段的值。这对于实现类似元组这种能够在构造期决定自己大小的对
   象是很实用的。将字段的数组嵌入到相同的内存分配中可以减少内存分配的
   次数，这提高了内存分配的效率。

void PyObject_Del(void *op)

   释放由 "PyObject_New()" 或者 "PyObject_NewVar()" 分配内存的对象。这
   通常由对象的type字段定义的 "tp_dealloc" 处理函数来调用。调用这个函
   数以后op对象中的字段都不可以被访问，因为原分配的内存空间已不再是一
   个有效的Python对象。

PyObject _Py_NoneStruct

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

参见:

  "PyModule_Create()"
     分配内存和创建扩展模块
