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

---

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

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

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

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

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

Возвращает истину, если *o* является объектом метода (имеет тип [`PyMethod_Type`](https://python-all.ru/2.7/c-api/method.html#c.PyMethod_Type)). Параметр не должен быть *NULL*.

#### `PyObject* PyMethod_New(PyObject *func, PyObject *self, PyObject *class)`

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

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

#### `PyObject* PyMethod_Class(PyObject *meth)`

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

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

#### `PyObject* PyMethod_GET_CLASS(PyObject *meth)`

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

Макрос-версия [`PyMethod_Class()`](https://python-all.ru/2.7/c-api/method.html#c.PyMethod_Class), которая избегает проверки ошибок.

#### `PyObject* PyMethod_Function(PyObject *meth)`

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

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

#### `PyObject* PyMethod_GET_FUNCTION(PyObject *meth)`

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

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

#### `PyObject* PyMethod_Self(PyObject *meth)`

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

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

#### `PyObject* PyMethod_GET_SELF(PyObject *meth)`

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

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

#### `int PyMethod_ClearFreeList()`

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

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