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

Есть несколько функций, специфичных для функций 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)
Return value: New reference.

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

Док-строка и имя функции извлекаются из объекта кода. __модуль__ извлекается из globals. Значения аргументов по умолчанию, аннотации и закрытие устанавливаются в NULL. __qualname__ устанавливается в то же значение, что и имя функции.

PyObject *PyFunction_NewWithQualName(PyObject *code, PyObject *globals, PyObject *qualname)
Return value: New reference.

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

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

PyObject *PyFunction_GetCode(PyObject *op)
Return value: Borrowed reference.

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

PyObject *PyFunction_GetGlobals(PyObject *op)
Return value: Borrowed reference.

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

PyObject *PyFunction_GetModule(PyObject *op)
Return value: Borrowed reference.

Возвращает borrowed reference в атрибут __module__ объекта функции op. Он может быть NULL.

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

PyObject *PyFunction_GetDefaults(PyObject *op)
Return value: Borrowed reference.

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

int PyFunction_SetDefaults(PyObject *op, PyObject *defaults)

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

Вызывает SystemError и возвращает -1 при неудаче.

PyObject *PyFunction_GetClosure(PyObject *op)
Return value: Borrowed reference.

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

int PyFunction_SetClosure(PyObject *op, PyObject *closure)

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

Вызывает SystemError и возвращает -1 при неудаче.

PyObject *PyFunction_GetAnnotations(PyObject *op)
Return value: Borrowed reference.

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

int PyFunction_SetAnnotations(PyObject *op, PyObject *annotations)

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

Вызывает SystemError и возвращает -1 при неудаче.

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