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

Метод экземпляра - это обертка для 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)
Возвращаемое значение: Новая ссылка.

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

PyObject *PyInstanceMethod_Function(PyObject *im)
Возвращаемое значение: Заимствованная ссылка.

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

PyObject *PyInstanceMethod_GET_FUNCTION(PyObject *im)
Возвращаемое значение: Заимствованная ссылка.

Макроверсия 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)
Возвращаемое значение: Новая ссылка.

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

PyObject *PyMethod_Function(PyObject *meth)
Возвращаемое значение: Заимствованная ссылка.

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

PyObject *PyMethod_GET_FUNCTION(PyObject *meth)
Возвращаемое значение: Заимствованная ссылка.

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

PyObject *PyMethod_Self(PyObject *meth)
Возвращаемое значение: Заимствованная ссылка.

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

PyObject *PyMethod_GET_SELF(PyObject *meth)
Возвращаемое значение: Заимствованная ссылка.

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