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

---

# Объекты методов

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

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

Этот экземпляр [`PyTypeObject`](https://python-all.ru/2.6/c-api/type.html#PyTypeObject) представляет тип метода Python. Он доступен программам на Python как `types.MethodType`.

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

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

*o*

является объектом метода (имеет тип

[`PyMethod_Type`](https://python-all.ru/2.6/c-api/method.html#PyMethod_Type)

). Параметр не должен быть

*NULL*

.

**[PyObject](https://python-all.ru/2.6/c-api/structures.html#PyObject)\* `PyMethod_New`([PyObject](https://python-all.ru/2.6/c-api/structures.html#PyObject) *\*func*, [PyObject](https://python-all.ru/2.6/c-api/structures.html#PyObject) *\*self*, [PyObject](https://python-all.ru/2.6/c-api/structures.html#PyObject) *\*class*)**

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

Возвращает новый объект метода, где *func* – любой вызываемый объект; это функция, которая будет вызвана при вызове метода. Если метод должен быть привязан к экземпляру, *self* должен быть экземпляром, а *class* – классом *self*; в противном случае *self* должен быть *NULL*, а *class* – классом, предоставляющим непривязанный метод..

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

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

Возвращает объект класса, из которого был создан метод *meth*; если он был создан из экземпляра, это будет класс экземпляра.

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

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

Макроверсия [`PyMethod_Class()`](https://python-all.ru/2.6/c-api/method.html#PyMethod_Class), не выполняющая проверку ошибок.

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

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

Возвращает объект функции, связанный с методом *meth*.

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

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

Макроверсия [`PyMethod_Function()`](https://python-all.ru/2.6/c-api/method.html#PyMethod_Function), которая не выполняет проверку ошибок.

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

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

Возвращает экземпляр, связанный с методом *meth*, если он привязан; в противном случае возвращает *NULL*.

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

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

Макроверсия [`PyMethod_Self()`](https://python-all.ru/2.6/c-api/method.html#PyMethod_Self), которая не выполняет проверку ошибок.

**int `PyMethod_ClearFreeList`()**

Очищает список свободных элементов. Возвращает общее количество освобождённых элементов.

Новое в версии 2.6.
