Функциональные объекты¶
Есть несколько функций, специфичных для функций 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
при неудаче.