Allouer des objets dans le tas
******************************

PyObject *_PyObject_New(PyTypeObject *type)
    *Return value: New reference.*

PyVarObject *_PyObject_NewVar(PyTypeObject *type, Py_ssize_t size)
    *Return value: New reference.*

PyObject *PyObject_Init(PyObject *op, PyTypeObject *type)
    *Return value: Borrowed reference.** Part of the Stable ABI.*

   Initialize a newly allocated object *op* with its type and initial
   reference.  Returns the initialized object.  If *type* indicates
   that the object participates in the cyclic garbage detector, it is
   added to the detector's set of observed objects. Other fields of
   the object are not affected.

PyVarObject *PyObject_InitVar(PyVarObject *op, PyTypeObject *type, Py_ssize_t size)
    *Return value: Borrowed reference.** Part of the Stable ABI.*

   Effectue les mêmes opérations que "PyObject_Init()" fait, et
   initialise également l'information de la longueur pour un objet de
   taille variable.

TYPE *PyObject_New(TYPE, PyTypeObject *type)
    *Return value: New reference.*

   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)
    *Return value: New reference.*

   Alloue un nouvel objet Python en utilisant le type de structure C
   *TYPE* et l'objet Python de type *type*. Les champs non définis par
   l'en-tête de l'objet Python ne sont pas initialisés. La mémoire
   allouée est suffisante pour la structure *TYPE* plus *size* champs
   de la taille donnée par le champ de *type* "tp_itemsize". Ceci est
   utile pour l'implémentation d'objets comme les *n*-uplets, qui sont
   capables de déterminer leur taille à la construction. Allouer les
   champs en même temps que l'objet diminue le nombre d'allocations,
   améliorant ainsi les performances.

void PyObject_Del(void *op)

   Libère la mémoire allouée à un objet utilisant "PyObject_New()" ou
   "PyObject_NewVar()". Ceci est normalement appelé par le
   gestionnaire "tp_dealloc" spécifié dans le type d'objet. Les champs
   de l'objet ne doivent plus être accédés après cet appel puisque cet
   emplacement mémoire ne correspond plus à un objet Python valide.

PyObject _Py_NoneStruct

   Objet qui est visible en tant que "None" dans Python. Ne devrait
   être accessible uniquement en utilisant la macro "Py_None", qui
   évalue cet objet à un pointeur.

Voir aussi:

  "PyModule_Create()"
     Allouer et créer des modules d'extension.
