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

---

# Объекты классов и экземпляров

Обратите внимание, что описанные здесь объекты классов представляют классы старого стиля, которые будут удалены в Python 3. При создании новых типов для модулей расширения следует работать с объектами типов (раздел [Type Objects](https://python-all.ru/2.7/c-api/type.html#typeobjects)).

**`PyClassObject`**

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

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

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

#### `int PyClass_Check(PyObject *o)`

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

#### `int PyClass_IsSubclass(PyObject *klass, PyObject *base)`

Возвращает true, если *klass* является подклассом *base*. Возвращает false во всех остальных случаях.

Функций, специфичных для объектов экземпляров, очень мало.

**[PyTypeObject](https://python-all.ru/2.7/c-api/type.html#c.PyTypeObject) `PyInstance_Type`**

Объект типа для экземпляров классов.

#### `int PyInstance_Check(PyObject *obj)`

Возвращает true, если *obj* является экземпляром.

#### `PyObject* PyInstance_New(PyObject *class, PyObject *arg, PyObject *kw)`

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

Создает новый экземпляр указанного класса. Параметры *arg* и *kw* используются как позиционные и именованные параметры конструктора объекта.

#### `PyObject* PyInstance_NewRaw(PyObject *class, PyObject *dict)`

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

Создает новый экземпляр указанного класса без вызова его конструктора. *class* – класс нового объекта. Параметр *dict* будет использоваться как [`__dict__`](https://python-all.ru/2.7/library/stdtypes.html#object.__dict__) объекта; если *NULL*, для экземпляра будет создан новый словарь.
