Объекты метода экземпляра

Метод экземпляра — это обёртка для PyCFunction и новый способ привязки PyCFunction к объекту класса. Он заменяет прежний вызов PyMethod_New(func, NULL, class).

PyTypeObject PyInstanceMethod_Type

Данный экземпляр PyTypeObject представляет тип метода экземпляра Python. Он не предоставляется Python программам.

int PyInstanceMethod_Check(PyObject *o)

Возвращает истину, если o является объектом метода экземпляра (тип PyInstanceMethod_Type). Параметр не должен быть NULL.

PyObject* PyInstanceMethod_New(PyObject *func)
Return value: New reference.

Возвращает новый объект метода экземпляра, где func — это любой вызываемый объект. func — это функция, которая будет вызываться при вызове метода экземпляра.

PyObject* PyInstanceMethod_Function(PyObject *im)
Return value: Borrowed reference.

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

PyObject* PyInstanceMethod_GET_FUNCTION(PyObject *im)
Return value: Borrowed reference.

Макро-версия PyInstanceMethod_Function(), которая позволяет избежать проверки ошибок.

Объекты метода

Методы — это связанные функциональные объекты. Методы всегда привязаны к экземпляру определяемого пользователем класса. Несвязанные методы (методы, привязанные к объекту класса) больше не доступны.

PyTypeObject PyMethod_Type

Данный экземпляр PyTypeObject представляет тип метода Python. Он отображается в программах Python как types.MethodType.

int PyMethod_Check(PyObject *o)

Возвращает истину, если o является объектом метода (тип PyMethod_Type). Параметр не должен быть NULL.

PyObject* PyMethod_New(PyObject *func, PyObject *self)
Return value: New reference.

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

PyObject* PyMethod_Function(PyObject *meth)
Return value: Borrowed reference.

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

PyObject* PyMethod_GET_FUNCTION(PyObject *meth)
Return value: Borrowed reference.

Макро-версия PyMethod_Function(), которая позволяет избежать проверки ошибок.

PyObject* PyMethod_Self(PyObject *meth)
Return value: Borrowed reference.

Возвращает экземпляр, связанный с методом meth.

PyObject* PyMethod_GET_SELF(PyObject *meth)
Return value: Borrowed reference.

Макро-версия PyMethod_Self(), которая позволяет избежать проверки ошибок.

int PyMethod_ClearFreeList()

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