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

function.md

82 строк · 4.9 КБ · обычная страница · сырой текст · скачать

1> **Источник:** https://python-all.ru/3.2/c-api/function.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# Объекты функций89Есть несколько функций, специфичных для функций Python.1011**`PyFunctionObject`**1213C-структура, используемая для функций.1415**[PyTypeObject](https://python-all.ru/3.2/c-api/type.html#PyTypeObject) `PyFunction_Type`**1617Это экземпляр [`PyTypeObject`](https://python-all.ru/3.2/c-api/type.html#PyTypeObject) и представляет тип функции Python. Программистам Python он доступен как `types.FunctionType`.1819#### `int PyFunction_Check(PyObject *o)`2021Возвращает истину, если *o* является объектом функции (имеет тип [`PyFunction_Type`](https://python-all.ru/3.2/c-api/function.html#PyFunction_Type)). Параметр не должен быть *NULL*.2223#### `PyObject* PyFunction_New(PyObject *code, PyObject *globals)`2425*Возвращаемое значение: новая ссылка.*2627Возвращает новый объект функции, связанный с объектом кода *code*. *globals* должен быть словарём с глобальными переменными, доступными функции.2829Docstring, имя и *\_\_module\_\_* функции берутся из объекта кода, значения аргументов по умолчанию и замыкание устанавливаются в *NULL*.3031#### `PyObject* PyFunction_GetCode(PyObject *op)`3233*Возвращаемое значение: заимствованная ссылка.*3435Возвращает объект кода, связанный с объектом функции *op*.3637#### `PyObject* PyFunction_GetGlobals(PyObject *op)`3839*Возвращаемое значение: заимствованная ссылка.*4041Возвращает словарь глобальных переменных, связанный с объектом функции *op*.4243#### `PyObject* PyFunction_GetModule(PyObject *op)`4445*Возвращаемое значение: заимствованная ссылка.*4647Возвращает атрибут *\_\_module\_\_* объекта-функции *op*. Обычно это строка с именем модуля, но может быть установлено в любой другой объект кодом Python.4849#### `PyObject* PyFunction_GetDefaults(PyObject *op)`5051*Возвращаемое значение: заимствованная ссылка.*5253Возвращает значения аргументов по умолчанию объекта функции *op*. Это может быть кортеж аргументов или *NULL*.5455#### `int PyFunction_SetDefaults(PyObject *op, PyObject *defaults)`5657Устанавливает значения аргументов по умолчанию для объекта функции *op*. *defaults* должен быть *Py\_None* или кортежем.5859Возбуждает [`SystemError`](https://python-all.ru/3.2/library/exceptions.html#SystemError) и возвращает `-1` при ошибке.6061#### `PyObject* PyFunction_GetClosure(PyObject *op)`6263*Возвращаемое значение: заимствованная ссылка.*6465Возвращает замыкание, связанное с объектом функции *op*. Это может быть *NULL* или кортеж cell-объектов.6667#### `int PyFunction_SetClosure(PyObject *op, PyObject *closure)`6869Устанавливает замыкание, связанное с объектом функции *op*. *closure* должен быть *Py\_None* или кортежем cell-объектов.7071Возбуждает [`SystemError`](https://python-all.ru/3.2/library/exceptions.html#SystemError) и возвращает `-1` при ошибке.7273#### `PyObject *PyFunction_GetAnnotations(PyObject *op)`7475Возвращает аннотации объекта функции *op*. Это может быть изменяемый словарь или *NULL*.7677#### `int PyFunction_SetAnnotations(PyObject *op, PyObject *annotations)`7879Устанавливает аннотации для объекта функции *op*. *annotations* должен быть словарём или *Py\_None*.8081Возбуждает [`SystemError`](https://python-all.ru/3.2/library/exceptions.html#SystemError) и возвращает `-1` при ошибке.82