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