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

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

PyTypeObject PyInstanceMethod_Type

Этот экземпляр PyTypeObject представляет тип метода экземпляра Python. Он не используется в программах Python.

int PyInstanceMethod_Check(PyObject *o)

Возвращает true, если 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)

Возвращает true, если 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(), позволяющая избежать проверки ошибок.

Вернуться на верх