Protocole de correspondance

Voir aussi PyObject_GetItem(), PyObject_SetItem() et PyObject_DelItem().

int PyMapping_Check(PyObject *o)

Renvoie 1 si l'objet prend en charge le protocole de correspondance ou le découpage en tranches et 0 sinon. Notez qu'elle renvoie 1 pour les classes Python avec une méthode __getitem__() puisque, dans le cas général, il est impossible de déterminer quel type de clef est pris en charge. Cette fonction ne provoque jamais d'erreur.

Py_ssize_t PyMapping_Size(PyObject *o)
Py_ssize_t PyMapping_Length(PyObject *o)

Renvoie le nombre de clefs dans l'objet o et -1 en cas d'échec. C'est l'équivalent de l'expression Python len(o).

PyObject* PyMapping_GetItemString(PyObject *o, const char *key)
Return value: New reference.

Renvoie les éléments de o qui correspondent à la chaîne key ou NULL en cas d'échec. C'est l'équivalent de l'expression Python o[key]. Voir aussi PyObject_GetItem().

int PyMapping_SetItemString(PyObject *o, const char *key, PyObject *v)

Fait correspondre la chaîne key à la valeur v dans l'objet o. Renvoie -1 en cas d'échec. C'est l'équivalent de la commande Python o[key] = v. Voir aussi PyObject_SetItem(). Cette fonction ne vole pas de référence à v.

int PyMapping_DelItem(PyObject *o, PyObject *key)

Supprime la correspondance associée à l'objet key dans l'objet o. Renvoie -1 en cas d'échec. C'est l'équivalent de la commande Python del o[key]. C'est un alias pour PyObject_DelItem().

int PyMapping_DelItemString(PyObject *o, const char *key)

Supprime la correspondance associée à la chaîne key dans l'objet o. Renvoie -1 en cas d'échec. C'est l'équivalent de la commande Python del o[key].

int PyMapping_HasKey(PyObject *o, PyObject *key)

Renvoie 1 si l'objet de correspondance possède une clef key et 0 sinon. C'est l'équivalent de l'expression Python key in o. Cette fonction ne provoque jamais d'erreur.

Notez que les exceptions qui surviennent pendant l'appel de la méthode __getitem__() seront supprimées. Pour obtenir le rapport d'erreur, utilisez plutôt PyObject_GetItem().

int PyMapping_HasKeyString(PyObject *o, const char *key)

Renvoie 1 si l'objet de correspondance possède une clef key et 0 sinon. C'est l'équivalent de l'expression Python key in o. Cette fonction ne provoque jamais d'erreur.

Notez que les exceptions qui surviennent en créant une chaîne de caractères temporaire pendant l'appel de la méthode __getitem__() seront supprimées. Pour obtenir le rapport d'erreur, utilisez plutôt PyMapping_GetItemString().

PyObject* PyMapping_Keys(PyObject *o)
Return value: New reference.

Renvoie la liste des clefs dans l'objet o. En cas d'échec, renvoie NULL.

Modifié dans la version 3.7: Auparavant, la fonction renvoyait une liste ou un n-uplet.

PyObject* PyMapping_Values(PyObject *o)
Return value: New reference.

Renvoie la liste des valeurs dans l'objet o. En cas d'échec, renvoie NULL.

Modifié dans la version 3.7: Auparavant, la fonction renvoyait une liste ou un n-uplet.

PyObject* PyMapping_Items(PyObject *o)
Return value: New reference.

Renvoie la liste des éléments dans l'objet o, où chaque élément est un n-uplet contenant une paire clef-valeur. En cas d'échec, renvoie NULL.

Modifié dans la version 3.7: Auparavant, la fonction renvoyait une liste ou un n-uplet.