Документация Python неофициальный перевод

Объекты функцийFunction Objects

Есть несколько функций, специфичных для функций 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)
Возвращаемое значение: новая ссылка.

Возвращает новый объект функции, связанный с объектом кода code. globals должен быть словарём с глобальными переменными, доступными функции.

Docstring, имя и __module__ функции берутся из объекта кода, значения аргументов по умолчанию и замыкание устанавливаются в NULL.

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 или кортеж cell-объектов.

int PyFunction_SetClosure(PyObject *op, PyObject *closure)

Устанавливает замыкание, связанное с объектом функции op. closure должен быть Py_None или кортежем cell-объектов.

В случае ошибки возбуждает SystemError и возвращает -1.