Объекты функций¶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_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 или кортеж cell-объектов.
- int PyFunction_SetClosure(PyObject *op, PyObject *closure)¶
Устанавливает замыкание, связанное с объектом функции op. closure должен быть Py_None или кортежем cell-объектов.
Возбуждает SystemError и возвращает -1 при ошибке.
- PyObject *PyFunction_GetAnnotations(PyObject *op)¶
Возвращает аннотации объекта функции op. Это может быть изменяемый словарь или NULL.
- int PyFunction_SetAnnotations(PyObject *op, PyObject *annotations)¶
Устанавливает аннотации для объекта функции op. annotations должен быть словарём или Py_None.
Возбуждает SystemError и возвращает -1 при ошибке.