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

---

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

**\[PyTypeObject\]`PyTypeObject`**

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

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

Это объект типа для объектов типа; это тот же объект, что `type` и `types.TypeType` в слое Python.

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

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

*o*

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

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

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

*o*

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

**\[PyType\_ClearCache\]unsigned int `PyType_ClearCache`(void)**

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

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

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

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

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

*o*

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

*feature*

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

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

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

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

.

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

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

*a*

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

*b*

.

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

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

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

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

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

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

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

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

`0`

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

`-1`

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