Объекты функций¶Function Objects
Есть несколько функций, специфичных для функций Python.
-
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__ устанавливается в то же значение, что и имя функции.
-
PyObject*
PyFunction_NewWithQualName(PyObject *code, PyObject *globals, PyObject *qualname)¶ - Возвращаемое значение: новая ссылка.
Как
PyFunction_New(), но также позволяет задать атрибут__qualname__объекта функции. qualname должен быть объектом unicode илиNULL; еслиNULL, атрибут__qualname__устанавливается в то же значение, что и его атрибут__name__.Новое в версии 3.3.
-
PyObject*
PyFunction_GetCode(PyObject *op)¶ - Возвращаемое значение: заимствованная ссылка.
Возвращает объект кода, связанный с объектом функции op.
-
PyObject*
PyFunction_GetGlobals(PyObject *op)¶ - Возвращаемое значение: заимствованная ссылка.
Возвращает словарь глобальных переменных, связанный с объектом функции op.
-
PyObject*
PyFunction_GetModule(PyObject *op)¶ - Возвращаемое значение: заимствованная ссылка.
Возвращает атрибут __module__ объекта-функции op. Обычно это строка с именем модуля, но может быть установлено в любой другой объект кодом 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.