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

---

# Объекты типов

**`PyTypeObject`**

C-структура объектов, используемая для описания встроенных типов.

**[PyObject](https://python-all.ru/3.1/c-api/structures.html#PyObject)\* `PyType_Type`**

Это объект типа для объектов типа; это тот же объект, что и

[`type`](https://python-all.ru/3.1/library/functions.html#type)

в слое Python.

**int `PyType_Check`([PyObject](https://python-all.ru/3.1/c-api/structures.html#PyObject) *\*o*)**

Возвращает истину, если объект

*o*

является объектом типа, включая экземпляры типов, производных от стандартного объекта типа. В остальных случаях возвращает ложь.

**int `PyType_CheckExact`([PyObject](https://python-all.ru/3.1/c-api/structures.html#PyObject) *\*o*)**

Возвращает истину, если объект

*o*

является объектом типа, но не подтипом стандартного объекта типа. В остальных случаях возвращает ложь.

**unsigned int `PyType_ClearCache`()**

Очищает внутренний кеш поиска. Возвращает текущий тег версии.

**void `PyType_Modified`([PyTypeObject](https://python-all.ru/3.1/c-api/type.html#PyTypeObject) *\*type*)**

Аннулирует внутренний кеш поиска для типа и всех его подтипов. Эта функция должна вызываться после любого ручного изменения атрибутов или базовых классов типа.

**int `PyType_HasFeature`([PyObject](https://python-all.ru/3.1/c-api/structures.html#PyObject) *\*o*, int *feature*)**

Возвращает истину, если объект типа

*o*

устанавливает признак

*feature*

. Признаки типа задаются одноразрядными флагами.

**int `PyType_IS_GC`([PyObject](https://python-all.ru/3.1/c-api/structures.html#PyObject) *\*o*)**

Возвращает истину, если объект типа поддерживает детектор циклов; это проверяет флаг типа

[`Py_TPFLAGS_HAVE_GC`](https://python-all.ru/3.1/c-api/typeobj.html#Py_TPFLAGS_HAVE_GC)

.

**int `PyType_IsSubtype`([PyTypeObject](https://python-all.ru/3.1/c-api/type.html#PyTypeObject) *\*a*, [PyTypeObject](https://python-all.ru/3.1/c-api/type.html#PyTypeObject) *\*b*)**

Возвращает истину, если

*a*

является подтипом

*b*

.

**[PyObject](https://python-all.ru/3.1/c-api/structures.html#PyObject)\* `PyType_GenericAlloc`([PyTypeObject](https://python-all.ru/3.1/c-api/type.html#PyTypeObject) *\*type*, Py\_ssize\_t *nitems*)**

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

XXX: Документировать.

**[PyObject](https://python-all.ru/3.1/c-api/structures.html#PyObject)\* `PyType_GenericNew`([PyTypeObject](https://python-all.ru/3.1/c-api/type.html#PyTypeObject) *\*type*, [PyObject](https://python-all.ru/3.1/c-api/structures.html#PyObject) *\*args*, [PyObject](https://python-all.ru/3.1/c-api/structures.html#PyObject) *\*kwds*)**

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

XXX: Документировать.

**int `PyType_Ready`([PyTypeObject](https://python-all.ru/3.1/c-api/type.html#PyTypeObject) *\*type*)**

Завершает инициализацию объекта типа. Должна вызываться для всех объектов типа, чтобы завершить их инициализацию. Эта функция отвечает за добавление наследуемых слотов из базового класса. Возвращает

`0`

при успехе, или

`-1`

и устанавливает исключение при ошибке.
