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