n-uplets

type PyTupleObject

Ce sous-type de PyObject représente un objet Python tuple.

PyTypeObject PyTuple_Type
Fait partie de l' ABI stable.

Cette instance de PyTypeObject représente le type Python tuple, c'est le même que l’objet Python tuple.

int PyTuple_Check(PyObject *p)

Renvoie vrai si p est un tuple ou un instance d’un de ses sous-type. Cette fonction n’échoue jamais.

int PyTuple_CheckExact(PyObject *p)

Renvoie vrai uniquement si p est un tuple, mais pas une instance d’un des sous-types. Cette fonction n’échoue jamais.

PyObject *PyTuple_New(Py_ssize_t len)
Valeur de retour : nouvelle référence. Fait partie de l' ABI stable. Thread safety: Atomic.

Return a new tuple object of size len, or NULL with an exception set on failure.

PyObject *PyTuple_FromArray(PyObject *const *array, Py_ssize_t size)
Thread safety: Atomic.

Create a tuple of size items and copy references from array to the new tuple.

array can be NULL if size is 0.

On success, return a new reference. On error, set an exception and return NULL.

Ajouté dans la version 3.15.

PyObject *PyTuple_Pack(Py_ssize_t n, ...)
Valeur de retour : nouvelle référence. Fait partie de l' ABI stable. Thread safety: Atomic.

Return a new tuple object of size n, or NULL with an exception set on failure. The tuple values are initialized to the subsequent n C arguments pointing to Python objects. PyTuple_Pack(2, a, b) is equivalent to Py_BuildValue("(OO)", a, b).

Py_ssize_t PyTuple_Size(PyObject *p)
Fait partie de l' ABI stable. Thread safety: Atomic.

Take a pointer to a tuple object, and return the size of that tuple. On error, return -1 with an exception set.

Py_ssize_t PyTuple_GET_SIZE(PyObject *p)
Thread safety: Atomic.

Like PyTuple_Size(), but without error checking.

PyObject *PyTuple_GetItem(PyObject *p, Py_ssize_t pos)
Valeur de retour : référence empruntée. Fait partie de l' ABI stable. Thread safety: Safe to call from multiple threads with external synchronization only.

Renvoie l’objet à la position pos dans le n-uplet p. Si pos est négatif ou hors limites, NULL est renvoyé et l’exception IndexError est levée.

The returned reference is borrowed from the tuple p (that is: it is only valid as long as you hold a reference to p). To get a strong reference, use Py_NewRef(PyTuple_GetItem(...)) or PySequence_GetItem().

PyObject *PyTuple_GET_ITEM(PyObject *p, Py_ssize_t pos)
Valeur de retour : référence empruntée. Thread safety: Safe to call from multiple threads with external synchronization only.

Similaire à la fonction PyTuple_GetItem(), mais ne contrôle pas les arguments.

PyObject *PyTuple_GetSlice(PyObject *p, Py_ssize_t low, Py_ssize_t high)
Valeur de retour : nouvelle référence. Fait partie de l' ABI stable. Thread safety: Atomic.

Return the slice of the tuple pointed to by p between low and high, or NULL with an exception set on failure.

This is the equivalent of the Python expression p[low:high]. Indexing from the end of the tuple is not supported.

int PyTuple_SetItem(PyObject *p, Py_ssize_t pos, PyObject *o)
Fait partie de l' ABI stable. Thread safety: Safe to call from multiple threads with external synchronization only.

Insert a reference to object o at position pos of the tuple pointed to by p. Return 0 on success. If pos is out of bounds, return -1 and set an IndexError exception. This function should only be used to fill in brand new tuples; using it on an existing tuple is thread-unsafe.

Note

Cette fonction « s’accapare » une référence à l’objet o et dé-référence l’objet présent dans le n-uplet à cette position.

void PyTuple_SET_ITEM(PyObject *p, Py_ssize_t pos, PyObject *o)
Thread safety: Safe to call from multiple threads with external synchronization only.

Like PyTuple_SetItem(), but does no error checking, and should only be used to fill in brand new tuples, using it on an existing tuple is thread-unsafe.

Bounds checking is performed as an assertion if Python is built in debug mode or with assertions.

Note

Cette fonction «  s’accapare » une référence à l’objet o et, contrairement à PyTuple_SetItem(), ne dé-référence pas l’élément remplacé : la référence à l’objet présent dans le n-uplet à la position pos est perdue.

Avertissement

This macro should only be used on tuples that are newly created. Using this macro on a tuple that is already in use (or in other words, has a refcount > 1) could lead to undefined behavior.

int _PyTuple_Resize(PyObject **p, Py_ssize_t newsize)
Thread safety: Safe to call from multiple threads with external synchronization only.

Permet de redimensionner un n-uplet. newsize est la nouvelle taille de ce n-uplet. Comme les n-uplets sont supposés être immuables cette fonction doit être utilisée uniquement s’il n’existe qu’une référence vers cet objet. N’utilisez pas cette fonction s’il est possible que le n-uplet soit connu d’une autre partie du code. Le n-uplet sera toujours agrandi ou réduit à partir de la fin. Cette fonction est plus performante que de détruire le tuple puis d’en créer un nouveau. Renvoie 0 si l’opération réussit. Le code ne devrait jamais supposer que la valeur de *p sera la même après l’appel à cette fonction. Si l’objet référencé par *p doit être remplacé, alors il est d’abord détruit. En cas d’erreur cette fonction renvoie -1 , stocke NULL dans *p et lève soit MemoryError soit SystemError.

Objets structure-séquence

A struct sequence object is a named tuple, that is, a sequence whose items can also be accessed through attributes. It is similar to collections.namedtuple(), but provides a slightly different interface.

To create a struct sequence, you first have to create a specific struct sequence type.

PyTypeObject *PyStructSequence_NewType(PyStructSequence_Desc *desc)
Valeur de retour : nouvelle référence. Fait partie de l' ABI stable. Thread safety: Atomic.

Crée un nouveau type d’objet structure-séquence à partir des données dans desc, décrit ci-dessous. Le type ainsi créé peut être instancié en appelant PyStructSequence_New().

Return NULL with an exception set on failure.

void PyStructSequence_InitType(PyTypeObject *type, PyStructSequence_Desc *desc)
Thread safety: Safe to call without external synchronization on distinct objects.

Initialise un type de structure-séquence à partir de desc, sur place.

int PyStructSequence_InitType2(PyTypeObject *type, PyStructSequence_Desc *desc)
Thread safety: Safe to call without external synchronization on distinct objects.

Like PyStructSequence_InitType(), but returns 0 on success and -1 with an exception set on failure.

Ajouté dans la version 3.4.

type PyStructSequence_Desc
Fait partie de l' ABI stable (incluant tous les attributs).

Contient les méta-données d’un type structure-séquence à créer.

const char *name

Fully qualified name of the type; null-terminated UTF-8 encoded. The name must contain the module name.

const char *doc

Pointer to docstring for the type or NULL to omit.

PyStructSequence_Field *fields

Pointer to NULL-terminated array with field names of the new type.

int n_in_sequence

Number of fields visible to the Python side (if used as tuple).

type PyStructSequence_Field
Fait partie de l' ABI stable (incluant tous les attributs).

Describes a field of a struct sequence. As a struct sequence is modeled as a tuple, all fields are typed as PyObject*. The index in the fields array of the PyStructSequence_Desc determines which field of the struct sequence is described.

const char *name

Name for the field or NULL to end the list of named fields, set to PyStructSequence_UnnamedField to leave unnamed.

const char *doc

Field docstring or NULL to omit.

const char *const PyStructSequence_UnnamedField
Fait partie de l' ABI stable depuis la version 3.11.

Une valeur sentinelle pour indiquer qu’un champ n’est pas nommé.

Modifié dans la version 3.9: Le type était char *.

PyObject *PyStructSequence_New(PyTypeObject *type)
Valeur de retour : nouvelle référence. Fait partie de l' ABI stable. Thread safety: Atomic.

Crée une instance de type, qui doit avoir été créé via PyStructSequence_NewType().

Return NULL with an exception set on failure.

PyObject *PyStructSequence_GetItem(PyObject *p, Py_ssize_t pos)
Valeur de retour : référence empruntée. Fait partie de l' ABI stable. Thread safety: Safe to call from multiple threads with external synchronization only.

Return the object at position pos in the struct sequence pointed to by p. The returned reference is borrowed from the struct sequence p (that is: it is only valid as long as you hold a reference to p).

Bounds checking is performed as an assertion if Python is built in debug mode or with assertions.

PyObject *PyStructSequence_GET_ITEM(PyObject *p, Py_ssize_t pos)
Valeur de retour : référence empruntée. Thread safety: Safe to call from multiple threads with external synchronization only.

Alias to PyStructSequence_GetItem().

Modifié dans la version 3.13: Now implemented as an alias to PyStructSequence_GetItem().

void PyStructSequence_SetItem(PyObject *p, Py_ssize_t pos, PyObject *o)
Fait partie de l' ABI stable. Thread safety: Safe to call from multiple threads with external synchronization only.

Insère un l’objet o dans la structure-séquence p à la position pos. Pour les mêmes raisons que PyTuple_SET_ITEM(), cette fonction ne doit être utilisée que pour des objets nouvellement créés.

Bounds checking is performed as an assertion if Python is built in debug mode or with assertions.

Note

Cette fonction « s’accapare » une référence à o.

void PyStructSequence_SET_ITEM(PyObject *p, Py_ssize_t *pos, PyObject *o)
Thread safety: Safe to call from multiple threads with external synchronization only.

Alias to PyStructSequence_SetItem().

Modifié dans la version 3.13: Now implemented as an alias to PyStructSequence_SetItem().