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.*

   Permet d'initialiser un objet *op* nouvellement alloué ainsi que
   son type et sa référence initiale.  Renvoie l'objet initialisé.  La
   présence de *type* indique que l'objet doit être traité par le
   détecteur d'ordures cycliques, il est de ce fait ajouté à
   l'ensemble du détecteur d'objets observés. Les autres champs de
   l'objet ne sont pas affectés.

PyVarObject* PyObject_InitVar(PyVarObject *op, PyTypeObject *type, Py_ssize_t size)
    *Return value: Borrowed reference.*

   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.*

   Alloue un nouvel objet Python en utilisant le type de structure C
   *TYPE* et l'objet Python *type*. Les champs non définis par l'en-
   tête de l'objet Python ne sont pas initialisés; le compteur de la
   référence objet sera égal à un. La taille de l'allocation mémoire
   est déterminée par le champ "tp_basicsize" de l'objet type.

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.
