mapping.md
1> **Источник:** https://python-all.ru/2.7/c-api/mapping.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# Протокол отображения89#### `int PyMapping_Check(PyObject *o)`1011Возвращает `1`, если объект поддерживает протокол отображения, и `0` в противном случае. Эта функция всегда завершается успешно.1213#### `Py_ssize_t PyMapping_Size(PyObject *o)`1415#### `Py_ssize_t PyMapping_Length(PyObject *o)`1617Возвращает количество ключей в объекте *o* при успехе и `-1` при неудаче. Для объектов, не поддерживающих протокол отображения, это эквивалентно выражению Python `len(o)`.1819Изменено в версии 2.5: Эти функции возвращали тип `int`. Это может потребовать изменений в коде для корректной поддержки 64-битных систем.2021#### `int PyMapping_DelItemString(PyObject =o, char *key)`2223Удаляет отображение для объекта *key* из объекта *o*. Возвращает `-1` при неудаче. Это эквивалентно оператору Python `del o[key]`.2425#### `int PyMapping_DelItem(PyObject *o, PyObject *key)`2627Удаляет отображение для объекта *key* из объекта *o*. Возвращает `-1` при неудаче. Это эквивалентно оператору Python `del o[key]`.2829#### `int PyMapping_HasKeyString(PyObject =o, char *key)`3031В случае успеха возвращает `1`, если объект отображения содержит ключ *key*, и `0` в противном случае. Это эквивалентно `o[key]`, возвращающей `True` при успехе и `False` при исключении. Эта функция всегда завершается успешно.3233#### `int PyMapping_HasKey(PyObject *o, PyObject *key)`3435Возвращает `1`, если объект отображения содержит ключ *key*, и `0` в противном случае. Это эквивалентно `o[key]`, возвращающей `True` при успехе и `False` при исключении. Эта функция всегда завершается успешно.3637#### `PyObject* PyMapping_Keys(PyObject *o)`3839*Возвращаемое значение: новая ссылка.*4041В случае успеха возвращает список ключей объекта *o*. В случае неудачи возвращает *NULL*. Это эквивалентно выражению Python `o.keys()`.4243#### `PyObject* PyMapping_Values(PyObject *o)`4445*Возвращаемое значение: новая ссылка.*4647В случае успеха возвращает список значений объекта *o*. В случае неудачи возвращает *NULL*. Это эквивалентно выражению Python `o.values()`.4849#### `PyObject* PyMapping_Items(PyObject *o)`5051*Возвращаемое значение: новая ссылка.*5253В случае успеха возвращает список элементов объекта *o*, где каждый элемент – это кортеж , содержащий пару ключ-значение. В случае неудачи возвращает *NULL*. Это эквивалентно выражению Python `o.items()`.5455#### `PyObject* PyMapping_GetItemString(PyObject *o, char *key)`5657*Возвращаемое значение: новая ссылка.*5859Возвращает элемент *o*, соответствующий объекту *key*, или *NULL* при неудаче. Это эквивалент выражения Python `o[key]`.6061#### `int PyMapping_SetItemString(PyObject =o, char *key, PyObject *v)`6263Отображает объект *key* на значение *v* в объекте *o*. Возвращает `-1` при неудаче. Это эквивалентно оператору Python `o[key] = v`.64