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

function.md

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

1> **Источник:** https://python-all.ru/2.6/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/2.6/c-api/type.html#PyTypeObject) `PyFunction_Type`**1617Это экземпляр [`PyTypeObject`](https://python-all.ru/2.6/c-api/type.html#PyTypeObject) и представляет тип функции Python. Программистам Python он доступен как `types.FunctionType`.1819**int `PyFunction_Check`([PyObject](https://python-all.ru/2.6/c-api/structures.html#PyObject) *\*o*)**2021Возвращает истину, если2223*o*2425является объектом функции (имеет тип2627[`PyFunction_Type`](https://python-all.ru/2.6/c-api/function.html#PyFunction_Type)2829). Параметр не должен быть3031*NULL*3233.3435**[PyObject](https://python-all.ru/2.6/c-api/structures.html#PyObject)\* `PyFunction_New`([PyObject](https://python-all.ru/2.6/c-api/structures.html#PyObject) *\*code*, [PyObject](https://python-all.ru/2.6/c-api/structures.html#PyObject) *\*globals*)**3637*Возвращаемое значение: новая ссылка.*3839Возвращает новый объект функции, связанный с объектом кода *code*. *globals* должен быть словарём с глобальными переменными, доступными функции.4041Docstring, имя и *\_\_module\_\_* функции берутся из объекта кода, значения аргументов по умолчанию и замыкание устанавливаются в *NULL*.4243**[PyObject](https://python-all.ru/2.6/c-api/structures.html#PyObject)\* `PyFunction_GetCode`([PyObject](https://python-all.ru/2.6/c-api/structures.html#PyObject) *\*op*)**4445*Возвращаемое значение: заимствованная ссылка.*4647Возвращает объект кода, связанный с объектом функции *op*.4849**[PyObject](https://python-all.ru/2.6/c-api/structures.html#PyObject)\* `PyFunction_GetGlobals`([PyObject](https://python-all.ru/2.6/c-api/structures.html#PyObject) *\*op*)**5051*Возвращаемое значение: заимствованная ссылка.*5253Возвращает словарь глобальных переменных, связанный с объектом функции *op*.5455**[PyObject](https://python-all.ru/2.6/c-api/structures.html#PyObject)\* `PyFunction_GetModule`([PyObject](https://python-all.ru/2.6/c-api/structures.html#PyObject) *\*op*)**5657*Возвращаемое значение: заимствованная ссылка.*5859Возвращает атрибут *\_\_module\_\_* объекта-функции *op*. Обычно это строка с именем модуля, но может быть установлено в любой другой объект кодом Python.6061**[PyObject](https://python-all.ru/2.6/c-api/structures.html#PyObject)\* `PyFunction_GetDefaults`([PyObject](https://python-all.ru/2.6/c-api/structures.html#PyObject) *\*op*)**6263*Возвращаемое значение: заимствованная ссылка.*6465Возвращает значения аргументов по умолчанию объекта функции *op*. Это может быть кортеж аргументов или *NULL*.6667**int `PyFunction_SetDefaults`([PyObject](https://python-all.ru/2.6/c-api/structures.html#PyObject) *\*op*, [PyObject](https://python-all.ru/2.6/c-api/structures.html#PyObject) *\*defaults*)**6869Устанавливает значения аргументов по умолчанию для объекта функции *op*. *defaults* должен быть *Py\_None* или кортежем.7071Возбуждает [`SystemError`](https://python-all.ru/2.6/library/exceptions.html#exceptions.SystemError) и возвращает `-1` при ошибке.7273**[PyObject](https://python-all.ru/2.6/c-api/structures.html#PyObject)\* `PyFunction_GetClosure`([PyObject](https://python-all.ru/2.6/c-api/structures.html#PyObject) *\*op*)**7475*Возвращаемое значение: заимствованная ссылка.*7677Возвращает замыкание, связанное с объектом функции *op*. Это может быть *NULL* или кортеж cell-объектов.7879**int `PyFunction_SetClosure`([PyObject](https://python-all.ru/2.6/c-api/structures.html#PyObject) *\*op*, [PyObject](https://python-all.ru/2.6/c-api/structures.html#PyObject) *\*closure*)**8081Устанавливает замыкание, связанное с объектом функции *op*. *closure* должен быть *Py\_None* или кортежем cell-объектов.8283Возбуждает [`SystemError`](https://python-all.ru/2.6/library/exceptions.html#exceptions.SystemError) и возвращает `-1` при ошибке.84