Функциональные объекты

Есть несколько функций, специфичных для функций Python.

type PyFunctionObject

Структура языка Си, используемая для функций.

PyTypeObject PyFunction_Type

Это экземпляр PyTypeObject и представляет тип функции Python. Для программистов на Python он представлен как types.FunctionType.

int PyFunction_Check(PyObject *o)

Возвращает значение true, если o является функциональным объектом (имеет тип PyFunction_Type). Параметр не должен быть NULL. Эта функция всегда выполняется успешно.

PyObject *PyFunction_New(PyObject *code, PyObject *globals)
Возвращаемое значение: Новая ссылка.

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

Строка документации и имя функции извлекаются из объекта code. __module__ извлекается из globals. Параметрам default, аннотации и замыкание присвоено значение NULL. __qualname__ то же значение, что и полю co_qualname объекта code.

PyObject *PyFunction_NewWithQualName(PyObject *code, PyObject *globals, PyObject *qualname)
Возвращаемое значение: Новая ссылка.

Как PyFunction_New(), но также позволяет задать атрибут функционального объекта __qualname__. qualname должно быть объектом unicode или NULL; если NULL, атрибуту __qualname__ присваивается то же значение, что и полю co_qualname объекта code.

Добавлено в версии 3.3.

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

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

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

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

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

Возвращает borrowed reference в __module__ атрибут function object op. Это может быть NULL.

Обычно это string, содержащий имя модуля, но может быть присвоен любому другому объекту с помощью кода на Python.

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

Возвращает значения аргумента по умолчанию для объекта функции op. Это может быть набор аргументов или NULL.

int PyFunction_SetDefaults(PyObject *op, PyObject *defaults)

Задайте значения аргумента по умолчанию для функционального объекта op. значения по умолчанию должны быть Py_None или кортежем.

Выдает SystemError и возвращает -1 в случае сбоя.

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

Возвращает замыкание, связанное с функциональным объектом op. Это может быть NULL или кортеж объектов cell.

int PyFunction_SetClosure(PyObject *op, PyObject *closure)

Установите замыкание, связанное с функциональным объектом op. замыкание должно быть Py_None или представлять собой набор объектов cell.

Выдает SystemError и возвращает -1 в случае сбоя.

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

Возвращает аннотации функционального объекта op. Это может быть изменяемый словарь или NULL.

int PyFunction_SetAnnotations(PyObject *op, PyObject *annotations)

Задайте аннотации для функционального объекта op. аннотации должны быть словарем или Py_None.

Выдает SystemError и возвращает -1 в случае сбоя.

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