Spec-Zone.ru › Python 3.11

Объекты функций

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

type PyFunctionObject

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

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 должен быть словарем со глобальными переменными, доступными функции.

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

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

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

Введено в версии 3.3.

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

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

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

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

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

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

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

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

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

int PyFunction_SetDefaults(PyObject *op, PyObject *defaults)

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

При ошибке генерирует SystemError и возвращает -1.

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

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

int PyFunction_SetClosure(PyObject *op, PyObject *closure)

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

При ошибке генерирует SystemError и возвращает -1.

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

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

int PyFunction_SetAnnotations(PyObject *op, PyObject *annotations)

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

При ошибке генерирует SystemError и возвращает -1.

© 2001–2023 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.11/c-api/function.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API