> **Источник:** https://python-all.ru/3.0/c-api/mapping.html
>
> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.

---

# Протокол отображения

**\[PyMapping\_Check\]int `PyMapping_Check`([PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject) *\*o*)**

Возвращает

`1`

, если объект поддерживает протокол отображения, и

`0`

в противном случае. Эта функция всегда завершается успешно.

**\[PyMapping\_Length\]Py\_ssize\_t `PyMapping_Length`([PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject) *\*o*)**

При успехе возвращает количество ключей в объекте *o*, а при ошибке – `-1`. Для объектов, не реализующих протокол отображения, это эквивалентно выражению Python `len(o)`.

**\[PyMapping\_DelItemString\]int `PyMapping_DelItemString`([PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject) *\*o*, char *\*key*)**

Удаляет отображение для объекта

*key*

из объекта

*o*

. Возвращает

`-1`

при ошибке. Это эквивалентно инструкции Python

`del o[key]`

.

**\[PyMapping\_DelItem\]int `PyMapping_DelItem`([PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject) *\*o*, [PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject) *\*key*)**

Удаляет отображение для объекта

*key*

из объекта

*o*

. Возвращает

`-1`

при ошибке. Это эквивалентно инструкции Python

`del o[key]`

.

**\[PyMapping\_HasKeyString\]int `PyMapping_HasKeyString`([PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject) *\*o*, char *\*key*)**

При успехе возвращает

`1`

, если объект отображения содержит ключ

*key*

, и

`0`

в противном случае. Это эквивалентно выражению Python

`key in o`

. Эта функция всегда завершается успешно.

**\[PyMapping\_HasKey\]int `PyMapping_HasKey`([PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject) *\*o*, [PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject) *\*key*)**

Возвращает

`1`

, если объект отображения содержит ключ

*key*

, и

`0`

в противном случае. Это эквивалентно выражению Python

`key in o`

. Эта функция всегда завершается успешно.

**\[PyMapping\_Keys\][PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject)\* `PyMapping_Keys`([PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject) *\*o*)**

*Возвращаемое значение: новая ссылка.*

В случае успеха возвращает список ключей в объекте *o*. В случае неудачи возвращает *NULL*. Это эквивалентно выражению Python `o.keys()`.

**\[PyMapping\_Values\][PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject)\* `PyMapping_Values`([PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject) *\*o*)**

*Возвращаемое значение: новая ссылка.*

В случае успеха возвращает список значений в объекте *o*. В случае неудачи возвращает *NULL*. Это эквивалентно выражению Python `o.values()`.

**\[PyMapping\_Items\][PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject)\* `PyMapping_Items`([PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject) *\*o*)**

*Возвращаемое значение: новая ссылка.*

В случае успеха возвращает список элементов в объекте *o*, где каждый элемент – это кортеж содержащий пару ключ-значение. В случае неудачи возвращает *NULL*. Это эквивалентно выражению Python `o.items()`.

**\[PyMapping\_GetItemString\][PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject)\* `PyMapping_GetItemString`([PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject) *\*o*, char *\*key*)**

*Возвращаемое значение: новая ссылка.*

Возвращает элемент *o*, соответствующий объекту *key*, или *NULL* при ошибке. Это эквивалентно выражению Python `o[key]`.

**\[PyMapping\_SetItemString\]int `PyMapping_SetItemString`([PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject) *\*o*, char *\*key*, [PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject) *\*v*)**

Сопоставляет объект

*key*

со значением

*v*

в объекте

*o*

. Возвращает

`-1`

при ошибке. Это эквивалентно инструкции Python

`o[key] = v`

.
