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()
ouPyObject_NewVar()
. Ceci est normalement appelé par le gestionnairetp_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 macroPy_None
, qui évalue cet objet à un pointeur.
Voir aussi
PyModule_Create()
Allouer et créer des modules d'extension.