Протокол сопоставления

См. также PyObject_GetItem(), PyObject_SetItem() и PyObject_DelItem().

int PyMapping_Check(PyObject *o)

Возвращает 1, если объект предоставляет протокол сопоставления или поддерживает слайсинг, и 0 в противном случае. Обратить внимание, что возвращает 1 для классов Python с методом __getitem__() с тех пор в общем случае, который невозможно определить, какие ключи они поддерживает. Эта функция всегда выполняется успешно.

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

Возвращает количество ключей в объекте, o при успешном завершении, а -1 при сбое. Это эквивалентно Python выражению len(o).

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

Возвращает элемент o, соответствующий строке key или NULL при отказе. Это эквивалент Python выражения o[key]. См. также PyObject_GetItem().

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

Сопоставляет строку key с значением v в объекте o. Возвращает -1 при отказе. Это Python эквивалент инструкции o[key] = v. См. также PyObject_SetItem(). Эта функция не крадет ссылку на v.

int PyMapping_DelItem(PyObject *o, PyObject *key)

Удалить сопоставление для key объекта из o объекта. Возвращает -1 при отказе. Это эквивалентно Python инструкция del o[key]. Это алиас PyObject_DelItem().

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

Удалить сопоставление для строки key из o объекта. Возвращает -1 при отказе. Это эквивалентно Python инструкции del o[key].

int PyMapping_HasKey(PyObject *o, PyObject *key)

Возвращает 1, если объект содержит мэппинг ключевого key и 0 в противном случае. Это эквивалентно Python key in o выражению. Эта функция всегда выполняется успешно.

Следует отметить, что исключения, возникающие при вызове метода __getitem__(), будут подавлены. Чтобы получить отчет об ошибках, используйте PyObject_GetItem().

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

Возвращает 1, если объект содержит мэппинг ключа key и 0 в противном случае. Это эквивалентно Python key in o выражению. Эта функция всегда выполняется успешно.

Следует отметить, что исключения, возникающие при вызове метода __getitem__() и создании временного объекта строки, будут подавлены. Чтобы получить отчет об ошибках, используйте PyMapping_GetItemString().

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

При успешном выполнении возвращает список ключей в o объекте. При отказе возвращает NULL.

Изменено в версии 3.7: Ранее функция возвращала список или кортеж.

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

При успешном выполнении возвращает список значений в o объекте. При отказе возвращает NULL.

Изменено в версии 3.7: Ранее функция возвращала список или кортеж.

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

При успешном выполнении возвращает список элементов в объекте o, где каждый элемент представляет собой кортеж, содержащий пару ключ-значение. При отказе возвращает NULL.

Изменено в версии 3.7: Ранее функция возвращала список или кортеж.