Функциональные объекты¶
Есть несколько функций, специфичных для функций Python.
-
PyFunctionObject
¶ Структура C, используемая для функций.
-
PyTypeObject
PyFunction_Type
¶ Это экземпляр
PyTypeObject
и представляет тип функции Python. Программистам Python он предоставляется какtypes.FunctionType
.
-
int
PyFunction_Check
(PyObject *o)¶ Возвращает истину, если o является функциональным объектом (с типом
PyFunction_Type
). Параметр не должен бытьNULL
.
-
PyObject*
PyFunction_New
(PyObject *code, PyObject *globals)¶ - Return value: New reference.
Возвращает новый объект функции, связанный с объектом кода code. globals должен быть словарем с глобальными переменными, доступными функции.
Строка документации и имя функции извлекаются из объекта кода. __module__ извлекается из globals. Значения аргументов по умолчанию, аннотации и закрытие установлены на
NULL
. __qualname__ устанавливается на то же значение, что и имя функции.
-
PyObject*
PyFunction_NewWithQualName
(PyObject *code, PyObject *globals, PyObject *qualname)¶ - Return value: New reference.
Как
PyFunction_New()
, но также позволяет установить атрибут__qualname__
функционального объекта. qualname должен быть объектом Юникод или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.
Возвращает глобальный словарь, связанный с функциональным объектом op.
-
PyObject*
PyFunction_GetModule
(PyObject *op)¶ - Return value: Borrowed reference.
Возвращает атрибут __module__ функционального объекта op. Обычно это строка, содержащая имя модуля, но её можно присвоить любому другому объекту с помощью кода 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. annotations должен быть словарем или
Py_None
.Вызывает
SystemError
и возвращает-1
в случае ошибки.