method.md
1> **Источник:** https://python-all.ru/3.4/c-api/method.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# Объекты методов экземпляра89Метод экземпляра – это обёртка для [`PyCFunction`](https://python-all.ru/3.4/c-api/structures.html#c.PyCFunction) и новый способ привязать [`PyCFunction`](https://python-all.ru/3.4/c-api/structures.html#c.PyCFunction) к объекту класса. Он заменяет прежний вызов `PyMethod_New(func, NULL, class)`.1011**[PyTypeObject](https://python-all.ru/3.4/c-api/type.html#c.PyTypeObject) `PyInstanceMethod_Type`**1213Этот экземпляр [`PyTypeObject`](https://python-all.ru/3.4/c-api/type.html#c.PyTypeObject) представляет тип метода экземпляра Python. Он не доступен программам на Python.1415#### `int PyInstanceMethod_Check(PyObject *o)`1617Возвращает true, если *o* является объектом метода экземпляра (имеет тип [`PyInstanceMethod_Type`](https://python-all.ru/3.4/c-api/method.html#c.PyInstanceMethod_Type)). Параметр не должен быть *NULL*.1819#### `PyObject* PyInstanceMethod_New(PyObject *func)`2021Возвращает новый объект метода экземпляра, где *func* – любой вызываемый объект. *func* – это функция, которая будет вызвана при вызове метода экземпляра.2223#### `PyObject* PyInstanceMethod_Function(PyObject *im)`2425Возвращает объект функции, связанный с методом экземпляра *im*.2627#### `PyObject* PyInstanceMethod_GET_FUNCTION(PyObject *im)`2829Макроверсия [`PyInstanceMethod_Function()`](https://python-all.ru/3.4/c-api/method.html#c.PyInstanceMethod_Function), которая не выполняет проверку ошибок.3031# Объекты методов3233Методы – это привязанные объекты-функции. Методы всегда привязаны к экземпляру пользовательского класса. Непривязанные методы (методы, привязанные к объекту класса) больше не поддерживаются.3435**[PyTypeObject](https://python-all.ru/3.4/c-api/type.html#c.PyTypeObject) `PyMethod_Type`**3637Этот экземпляр [`PyTypeObject`](https://python-all.ru/3.4/c-api/type.html#c.PyTypeObject) представляет тип метода Python. Он доступен программам на Python как `types.MethodType`.3839#### `int PyMethod_Check(PyObject *o)`4041Возвращает true, если *o* является объектом метода (имеет тип [`PyMethod_Type`](https://python-all.ru/3.4/c-api/method.html#c.PyMethod_Type)). Параметр не должен быть *NULL*.4243#### `PyObject* PyMethod_New(PyObject *func, PyObject *self)`4445*Возвращаемое значение: новая ссылка.*4647Возвращает новый объект метода, где *func* – любой вызываемый объект, а *self* – экземпляр, к которому должен быть привязан метод. *func* – это функция, которая будет вызвана при вызове метода. *self* не должен быть *NULL*.4849#### `PyObject* PyMethod_Function(PyObject *meth)`5051*Возвращаемое значение: заимствованная ссылка.*5253Возвращает объект функции, связанный с методом *meth*.5455#### `PyObject* PyMethod_GET_FUNCTION(PyObject *meth)`5657*Возвращаемое значение: заимствованная ссылка.*5859Макроверсия [`PyMethod_Function()`](https://python-all.ru/3.4/c-api/method.html#c.PyMethod_Function), которая не выполняет проверку ошибок.6061#### `PyObject* PyMethod_Self(PyObject *meth)`6263*Возвращаемое значение: заимствованная ссылка.*6465Возвращает экземпляр, связанный с методом *meth*.6667#### `PyObject* PyMethod_GET_SELF(PyObject *meth)`6869*Возвращаемое значение: заимствованная ссылка.*7071Макроверсия [`PyMethod_Self()`](https://python-all.ru/3.4/c-api/method.html#c.PyMethod_Self), которая не выполняет проверку ошибок.7273#### `int PyMethod_ClearFreeList()`7475Очищает список свободных элементов. Возвращает общее количество освобождённых элементов.76