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

veryhigh.md

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

1> **Источник:** https://python-all.ru/3.13/c-api/veryhigh.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# Слой очень высокого уровня89Функции этой главы позволяют выполнять исходный код Python, переданный в файле или буфере, но не дают возможности взаимодействовать с интерпретатором на более детальном уровне.1011Некоторые из этих функций принимают начальный символ грамматики в качестве параметра. Доступны следующие начальные символы: [`Py_eval_input`](https://python-all.ru/3.13/c-api/veryhigh.html#c.Py_eval_input), [`Py_file_input`](https://python-all.ru/3.13/c-api/veryhigh.html#c.Py_file_input), [`Py_single_input`](https://python-all.ru/3.13/c-api/veryhigh.html#c.Py_single_input) и [`Py_func_type_input`](https://python-all.ru/3.13/c-api/veryhigh.html#c.Py_func_type_input). Они описаны после функций, которые принимают их как параметры.1213Обратите также внимание, что некоторые из этих функций принимают параметры FILE\*. Одна из частных проблем, требующая аккуратного подхода, заключается в том, что структура `FILE` для разных библиотек C может различаться и быть несовместимой. По крайней мере, под Windows динамически подключаемые расширения могут использовать разные библиотеки, поэтому следует проявлять осторожность: параметры FILE\* следует передавать этим функциям только в том случае, если есть уверенность, что они созданы той же библиотекой, которую использует среда выполнения Python.1415#### `int PyRun_AnyFile(FILE *fp, const char *filename)`1617Это упрощённый интерфейс к [`PyRun_AnyFileExFlags()`](https://python-all.ru/3.13/c-api/veryhigh.html#c.PyRun_AnyFileExFlags) (см. ниже), в котором параметр *closeit* установлен в `0`, а *flags* – в `NULL`.1819#### `int PyRun_AnyFileFlags(FILE *fp, const char *filename, PyCompilerFlags *flags)`2021Это упрощённый интерфейс к [`PyRun_AnyFileExFlags()`](https://python-all.ru/3.13/c-api/veryhigh.html#c.PyRun_AnyFileExFlags) (см. ниже); аргумент *closeit* оставлен равным `0`.2223#### `int PyRun_AnyFileEx(FILE *fp, const char *filename, int closeit)`2425Это упрощённый интерфейс к [`PyRun_AnyFileExFlags()`](https://python-all.ru/3.13/c-api/veryhigh.html#c.PyRun_AnyFileExFlags) (см. ниже); аргумент *flags* оставлен равным `NULL`.2627#### `int PyRun_AnyFileExFlags(FILE *fp, const char *filename, int closeit, PyCompilerFlags *flags)`2829Если *fp* ссылается на файл, связанный с интерактивным устройством (консоль, терминальный ввод или Unix-псевдотерминал), возвращается значение [`PyRun_InteractiveLoop()`](https://python-all.ru/3.13/c-api/veryhigh.html#c.PyRun_InteractiveLoop); в противном случае возвращается результат [`PyRun_SimpleFile()`](https://python-all.ru/3.13/c-api/veryhigh.html#c.PyRun_SimpleFile). *filename* декодируется из кодировки файловой системы ([`sys.getfilesystemencoding()`](https://python-all.ru/3.13/library/sys.html#sys.getfilesystemencoding)). Если *filename* равно `NULL`, эта функция использует `"???"` в качестве имени файла. Если *closeit* истинно, файл закрывается до возврата `PyRun_SimpleFileExFlags()`.3031#### `int PyRun_SimpleString(const char *command)`3233Это упрощённый интерфейс к [`PyRun_SimpleStringFlags()`](https://python-all.ru/3.13/c-api/veryhigh.html#c.PyRun_SimpleStringFlags) (см. ниже); аргумент [`PyCompilerFlags`](https://python-all.ru/3.13/c-api/veryhigh.html#c.PyCompilerFlags)\* оставлен равным `NULL`.3435#### `int PyRun_SimpleStringFlags(const char *command, PyCompilerFlags *flags)`3637Выполняет исходный код Python из *command* в модуле [`__main__`](https://python-all.ru/3.13/library/__main__.html#module-__main__) в соответствии с аргументом *flags*. Если `__main__` не существует, он создаётся. Возвращает `0` при успехе или `-1`, если было возбуждено исключение. В случае ошибки получить информацию об исключении невозможно. Значение *flags* описано ниже.3839Обратите внимание: если возбуждается [`SystemExit`](https://python-all.ru/3.13/library/exceptions.html#SystemExit), которое иначе не было бы обработано, эта функция не вернёт `-1`, а завершит процесс, при условии, что [`PyConfig.inspect`](https://python-all.ru/3.13/c-api/init_config.html#c.PyConfig.inspect) равно нулю.4041#### `int PyRun_SimpleFile(FILE *fp, const char *filename)`4243Это упрощённый интерфейс к [`PyRun_SimpleFileExFlags()`](https://python-all.ru/3.13/c-api/veryhigh.html#c.PyRun_SimpleFileExFlags) (см. ниже); *closeit* оставлен равным `0`, а *flags*`NULL`.4445#### `int PyRun_SimpleFileEx(FILE *fp, const char *filename, int closeit)`4647Это упрощённый интерфейс к [`PyRun_SimpleFileExFlags()`](https://python-all.ru/3.13/c-api/veryhigh.html#c.PyRun_SimpleFileExFlags) (см. ниже), в котором параметр *flags* установлен в `NULL`.4849#### `int PyRun_SimpleFileExFlags(FILE *fp, const char *filename, int closeit, PyCompilerFlags *flags)`5051Аналогично [`PyRun_SimpleStringFlags()`](https://python-all.ru/3.13/c-api/veryhigh.html#c.PyRun_SimpleStringFlags), но исходный код Python читается из *fp*, а не из строки в памяти. *filename* должно быть именем файла; оно декодируется из [кодировки файловой системы и обработчика ошибок](https://python-all.ru/3.13/glossary.html#term-filesystem-encoding-and-error-handler). Если *closeit* истинно, файл закрывается до возврата `PyRun_SimpleFileExFlags()`.5253> **Примечание**54>55> В Windows *fp* должен быть открыт в бинарном режиме (например, `fopen(filename, "rb")`). В противном случае Python может некорректно обрабатывать файлы скриптов с концами строк LF.5657#### `int PyRun_InteractiveOneObject(FILE *fp, PyObject *filename, PyCompilerFlags *flags)`5859Читает и выполняет один оператор из файла, связанного с интерактивным устройством, в соответствии с аргументом *flags*. Пользователю будет выведено приглашение с помощью `sys.ps1` и `sys.ps2`. *filename* должен быть объектом [`str`](https://python-all.ru/3.13/library/stdtypes.html#str) Python.6061Возвращает `0` при успешном выполнении ввода, `-1` при возникновении исключения или код ошибки из заголовочного файла `errcode.h`, распространяемого в составе Python, в случае ошибки синтаксического анализа. (Обратите внимание, что `errcode.h` не включается `Python.h`, поэтому при необходимости его нужно включать отдельно.)6263#### `int PyRun_InteractiveOne(FILE *fp, const char *filename)`6465Это упрощённый интерфейс к [`PyRun_InteractiveOneFlags()`](https://python-all.ru/3.13/c-api/veryhigh.html#c.PyRun_InteractiveOneFlags) (см. ниже), в котором параметр *flags* установлен в `NULL`.6667#### `int PyRun_InteractiveOneFlags(FILE *fp, const char *filename, PyCompilerFlags *flags)`6869Аналогично [`PyRun_InteractiveOneObject()`](https://python-all.ru/3.13/c-api/veryhigh.html#c.PyRun_InteractiveOneObject), но *filename* является const char\*, которое декодируется из [кодировки файловой системы и обработчика ошибок](https://python-all.ru/3.13/glossary.html#term-filesystem-encoding-and-error-handler).7071#### `int PyRun_InteractiveLoop(FILE *fp, const char *filename)`7273Это упрощённый интерфейс к [`PyRun_InteractiveLoopFlags()`](https://python-all.ru/3.13/c-api/veryhigh.html#c.PyRun_InteractiveLoopFlags) (см. ниже), в котором параметр *flags* установлен в `NULL`.7475#### `int PyRun_InteractiveLoopFlags(FILE *fp, const char *filename, PyCompilerFlags *flags)`7677Читает и выполняет инструкции из файла, связанного с интерактивным устройством, до достижения EOF. Пользователю выводится приглашение с помощью `sys.ps1` и `sys.ps2`. *filename* декодируется из [кодировки файловой системы и обработчика ошибок](https://python-all.ru/3.13/glossary.html#term-filesystem-encoding-and-error-handler). Возвращает `0` при EOF или отрицательное число в случае ошибки.7879#### `int (*PyOS_InputHook)(void)`8081*Часть [Stable ABI](https://python-all.ru/3.13/c-api/stable.html#stable).*8283Может быть установлен на функцию с прототипом `int func(void)`. Эта функция будет вызываться, когда приглашение интерпретатора Python собирается перейти в состояние ожидания ввода пользователя с терминала. Возвращаемое значение игнорируется. Переопределение этого хука можно использовать для интеграции приглашения интерпретатора с другими циклами событий, как это сделано в `Modules/_tkinter.c` в исходном коде Python.8485Изменено в версии 3.12: Эта функция вызывается только из [основного интерпретатора](https://python-all.ru/3.13/c-api/init.html#sub-interpreter-support).8687#### `char *(*PyOS_ReadlineFunctionPointer)(FILE*, FILE*, const char*)`8889Может быть установлен на функцию с прототипом `char *func(FILE *stdin, FILE *stdout, char *prompt)`, переопределяя стандартную функцию для чтения одной строки ввода в приглашении интерпретатора. Ожидается, что функция выведет строку *prompt*, если она не `NULL`, а затем прочитает строку ввода из предоставленного стандартного входного файла и вернёт полученную строку. Например, модуль [`readline`](https://python-all.ru/3.13/library/readline.html#module-readline) устанавливает этот хук для поддержки редактирования строки и автодополнения по табуляции.9091Результатом должна быть строка, выделенная с помощью [`PyMem_RawMalloc()`](https://python-all.ru/3.13/c-api/memory.html#c.PyMem_RawMalloc) или [`PyMem_RawRealloc()`](https://python-all.ru/3.13/c-api/memory.html#c.PyMem_RawRealloc), или `NULL`, если произошла ошибка.9293Изменено в версии 3.4: Результат должен выделяться с помощью [`PyMem_RawMalloc()`](https://python-all.ru/3.13/c-api/memory.html#c.PyMem_RawMalloc) или [`PyMem_RawRealloc()`](https://python-all.ru/3.13/c-api/memory.html#c.PyMem_RawRealloc), а не с помощью [`PyMem_Malloc()`](https://python-all.ru/3.13/c-api/memory.html#c.PyMem_Malloc) или [`PyMem_Realloc()`](https://python-all.ru/3.13/c-api/memory.html#c.PyMem_Realloc).9495Изменено в версии 3.12: Эта функция вызывается только из [основного интерпретатора](https://python-all.ru/3.13/c-api/init.html#sub-interpreter-support).9697#### `PyObject *PyRun_String(const char *str, int start, PyObject *globals, PyObject *locals)`9899*Возвращаемое значение: новая ссылка.*100101Это упрощённый интерфейс к [`PyRun_StringFlags()`](https://python-all.ru/3.13/c-api/veryhigh.html#c.PyRun_StringFlags) (см. ниже), в котором параметр *flags* установлен в `NULL`.102103#### `PyObject *PyRun_StringFlags(const char *str, int start, PyObject *globals, PyObject *locals, PyCompilerFlags *flags)`104105*Возвращаемое значение: новая ссылка.*106107Выполняет исходный код Python из *str* в контексте, заданном объектами *globals* и *locals*, с флагами компилятора, указанными в *flags*. *globals* должен быть словарём; *locals* может быть любым объектом, реализующим протокол отображения. Параметр *start* задаёт начальный символ и должен быть одним из [доступных начальных символов](https://python-all.ru/3.13/c-api/veryhigh.html#start-symbols).108109Возвращает результат выполнения кода в виде объекта Python, или `NULL`, если было возбуждено исключение.110111#### `PyObject *PyRun_File(FILE *fp, const char *filename, int start, PyObject *globals, PyObject *locals)`112113*Возвращаемое значение: новая ссылка.*114115Это упрощённый интерфейс к [`PyRun_FileExFlags()`](https://python-all.ru/3.13/c-api/veryhigh.html#c.PyRun_FileExFlags) (см. ниже), в котором параметр *closeit* установлен в `0`, а *flags* – в `NULL`.116117#### `PyObject *PyRun_FileEx(FILE *fp, const char *filename, int start, PyObject *globals, PyObject *locals, int closeit)`118119*Возвращаемое значение: новая ссылка.*120121Это упрощённый интерфейс к [`PyRun_FileExFlags()`](https://python-all.ru/3.13/c-api/veryhigh.html#c.PyRun_FileExFlags) (см. ниже), в котором параметр *flags* установлен в `NULL`.122123#### `PyObject *PyRun_FileFlags(FILE *fp, const char *filename, int start, PyObject *globals, PyObject *locals, PyCompilerFlags *flags)`124125*Возвращаемое значение: новая ссылка.*126127Это упрощённый интерфейс к [`PyRun_FileExFlags()`](https://python-all.ru/3.13/c-api/veryhigh.html#c.PyRun_FileExFlags) (см. ниже), в котором параметр *closeit* установлен в `0`.128129#### `PyObject *PyRun_FileExFlags(FILE *fp, const char *filename, int start, PyObject *globals, PyObject *locals, int closeit, PyCompilerFlags *flags)`130131*Возвращаемое значение: новая ссылка.*132133Аналогично [`PyRun_StringFlags()`](https://python-all.ru/3.13/c-api/veryhigh.html#c.PyRun_StringFlags), но исходный код Python читается из *fp*, а не из строки в памяти. *filename* должен быть именем файла, он декодируется из [кодировки файловой системы и обработчика ошибок](https://python-all.ru/3.13/glossary.html#term-filesystem-encoding-and-error-handler). Если *closeit* истинно, файл закрывается перед возвратом из [`PyRun_FileExFlags()`](https://python-all.ru/3.13/c-api/veryhigh.html#c.PyRun_FileExFlags).134135#### `PyObject *Py_CompileString(const char *str, const char *filename, int start)`136137*Возвращаемое значение: новая ссылка.*138139*Часть [Stable ABI](https://python-all.ru/3.13/c-api/stable.html#stable).*140141Это упрощённый интерфейс к [`Py_CompileStringFlags()`](https://python-all.ru/3.13/c-api/veryhigh.html#c.Py_CompileStringFlags) (см. ниже), в котором параметр *flags* установлен в `NULL`.142143#### `PyObject *Py_CompileStringFlags(const char *str, const char *filename, int start, PyCompilerFlags *flags)`144145*Возвращаемое значение: новая ссылка.*146147Это упрощённый интерфейс к [`Py_CompileStringExFlags()`](https://python-all.ru/3.13/c-api/veryhigh.html#c.Py_CompileStringExFlags) (см. ниже), в котором параметр *optimize* установлен в `-1`.148149#### `PyObject *Py_CompileStringObject(const char *str, PyObject *filename, int start, PyCompilerFlags *flags, int optimize)`150151*Возвращаемое значение: новая ссылка.*152153Анализирует и компилирует исходный код Python в *str*, возвращая результирующий объект кода. Начальный символ задаётся параметром *start*; это можно использовать для ограничения компилируемого кода, и он должен быть одним из [доступных начальных символов](https://python-all.ru/3.13/c-api/veryhigh.html#start-symbols). Имя файла, указанное в *filename*, используется для построения объекта кода и может появляться в трассировках стека или сообщениях об исключениях [`SyntaxError`](https://python-all.ru/3.13/library/exceptions.html#SyntaxError). Возвращает `NULL`, если код не может быть разобран или скомпилирован.154155Целое число *optimize* задаёт уровень оптимизации компилятора; значение `-1` выбирает уровень оптимизации интерпретатора, заданный опциями [`-O`](https://python-all.ru/3.13/using/cmdline.html#cmdoption-O). Явные уровни: `0` (без оптимизации; `__debug__` истинно), `1` (утверждения удалены, `__debug__` ложно) или `2` (докстринги также удалены).156157Добавлено в версии 3.4.158159#### `PyObject *Py_CompileStringExFlags(const char *str, const char *filename, int start, PyCompilerFlags *flags, int optimize)`160161*Возвращаемое значение: новая ссылка.*162163Как [`Py_CompileStringObject()`](https://python-all.ru/3.13/c-api/veryhigh.html#c.Py_CompileStringObject), но *filename* – это байтовая строка, декодированная из [кодировки файловой системы и обработчика ошибок](https://python-all.ru/3.13/glossary.html#term-filesystem-encoding-and-error-handler).164165Добавлено в версии 3.2.166167#### `PyObject *PyEval_EvalCode(PyObject *co, PyObject *globals, PyObject *locals)`168169*Возвращаемое значение: новая ссылка.*170171*Часть [Stable ABI](https://python-all.ru/3.13/c-api/stable.html#stable).*172173Это упрощённый интерфейс к [`PyEval_EvalCodeEx()`](https://python-all.ru/3.13/c-api/veryhigh.html#c.PyEval_EvalCodeEx), содержащий только объект кода, а также глобальные и локальные переменные. Остальные аргументы устанавливаются в `NULL`.174175#### `PyObject *PyEval_EvalCodeEx(PyObject *co, PyObject *globals, PyObject *locals, PyObject *const *args, int argcount, PyObject *const *kws, int kwcount, PyObject *const *defs, int defcount, PyObject *kwdefs, PyObject *closure)`176177*Возвращаемое значение: новая ссылка.*178179*Часть [Stable ABI](https://python-all.ru/3.13/c-api/stable.html#stable).*180181Выполняет предварительно скомпилированный объект кода в заданном окружении для его вычисления. Это окружение состоит из словаря глобальных переменных, объекта отображения локальных переменных, массивов аргументов, ключевых слов и значений по умолчанию, словаря значений по умолчанию для [только ключевых](https://python-all.ru/3.13/glossary.html#keyword-only-parameter) аргументов и кортежа замыкания с ячейками.182183#### `PyObject *PyEval_EvalFrame(PyFrameObject *f)`184185*Возвращаемое значение: новая ссылка.*186187*Часть [Stable ABI](https://python-all.ru/3.13/c-api/stable.html#stable).*188189Выполняет фрейм исполнения. Это упрощённый интерфейс к [`PyEval_EvalFrameEx()`](https://python-all.ru/3.13/c-api/veryhigh.html#c.PyEval_EvalFrameEx), обеспечивающий обратную совместимость.190191#### `PyObject *PyEval_EvalFrameEx(PyFrameObject *f, int throwflag)`192193*Возвращаемое значение: новая ссылка.*194195*Часть [Stable ABI](https://python-all.ru/3.13/c-api/stable.html#stable).*196197Это основная, неприукрашенная функция интерпретации Python. Выполняется объект кода, связанный с фреймом исполнения *f*, с интерпретацией байткода и вызовом функций по мере необходимости. Дополнительный параметр *throwflag* в основном можно игнорировать – если он равен true, то немедленно возбуждается исключение; это используется для методов [`throw()`](https://python-all.ru/3.13/reference/expressions.html#generator.throw) объектов-генераторов.198199Изменено в версии 3.4: Эта функция теперь включает отладочное утверждение, помогающее гарантировать, что она не игнорирует активное исключение без уведомления.200201#### `int PyEval_MergeCompilerFlags(PyCompilerFlags *cf)`202203Эта функция изменяет флаги текущего фрейма вычислений и возвращает true в случае успеха, false в случае ошибки.204205#### `struct PyCompilerFlags`206207Это структура, используемая для хранения флагов компилятора. Если код только компилируется, она передаётся как `int flags`, а если код выполняется, она передаётся как `PyCompilerFlags *flags`. В этом случае `from __future__ import` может изменять *flags*.208209Когда `PyCompilerFlags *flags` равно `NULL`, [`cf_flags`](https://python-all.ru/3.13/c-api/veryhigh.html#c.PyCompilerFlags.cf_flags) рассматривается как равный `0`, и любые изменения, вызванные `from __future__ import`, отбрасываются.210211#### `int cf_flags`212213Флаги компилятора.214215#### `int cf_feature_version`216217*cf\_feature\_version* – это минорная версия Python. Его следует инициализировать значением `PY_MINOR_VERSION`.218219Поле по умолчанию игнорируется; оно используется только если флаг `PyCF_ONLY_AST` установлен в [`cf_flags`](https://python-all.ru/3.13/c-api/veryhigh.html#c.PyCompilerFlags.cf_flags).220221Изменено в версии 3.8: Добавлено поле *cf\_feature\_version*.222223Доступные флаги компилятора доступны в виде макросов:224225#### `PyCF_ALLOW_TOP_LEVEL_AWAIT`226227#### `PyCF_ONLY_AST`228229#### `PyCF_OPTIMIZED_AST`230231#### `PyCF_TYPE_COMMENTS`232233См. [флаги компилятора](https://python-all.ru/3.13/library/ast.html#ast-compiler-flags) в документации модуля Python `ast`, который экспортирует эти константы под теми же именами.234235Флаги «`PyCF`» выше можно комбинировать с флагами «`CO_FUTURE`», такими как [`CO_FUTURE_ANNOTATIONS`](https://python-all.ru/3.13/c-api/code.html#c.CO_FUTURE_ANNOTATIONS), чтобы включить возможности, обычно выбираемые с помощью [future-операторов](https://python-all.ru/3.13/reference/simple_stmts.html#future). Полный список см. в [Флаги объекта кода](https://python-all.ru/3.13/c-api/code.html#c-codeobject-flags).236237## Доступные стартовые символы238239#### `int Py_eval_input`240241Стартовый символ из грамматики Python для изолированных выражений; используется с [`Py_CompileString()`](https://python-all.ru/3.13/c-api/veryhigh.html#c.Py_CompileString).242243#### `int Py_file_input`244245Стартовый символ из грамматики Python для последовательностей операторов, читаемых из файла или другого источника; используется с [`Py_CompileString()`](https://python-all.ru/3.13/c-api/veryhigh.html#c.Py_CompileString). Это символ, который следует использовать при компиляции произвольно длинного исходного кода Python.246247#### `int Py_single_input`248249Начальный символ грамматики Python для одного оператора; используется с [`Py_CompileString()`](https://python-all.ru/3.13/c-api/veryhigh.html#c.Py_CompileString). Этот символ используется в интерактивном цикле интерпретатора.250251#### `int Py_func_type_input`252253Начальный символ грамматики Python для типа функции; используется с [`Py_CompileString()`](https://python-all.ru/3.13/c-api/veryhigh.html#c.Py_CompileString). Используется для разбора «комментариев с типом сигнатуры» из [**PEP 484**](https://python-all.ru/3.13/c-api/veryhigh.html).254255Для этого требуется установка флага [`PyCF_ONLY_AST`](https://python-all.ru/3.13/c-api/veryhigh.html#c.PyCF_ONLY_AST).256257> **См. также**258>259> - [`ast.FunctionType`](https://python-all.ru/3.13/library/ast.html#ast.FunctionType)260> - [**PEP 484**](https://python-all.ru/3.13/c-api/veryhigh.html)261262Добавлено в версии 3.8.263264## Эффекты стека265266> **См. также**267>268> [`dis.stack_effect()`](https://python-all.ru/3.13/library/dis.html#dis.stack_effect)269270#### `PY_INVALID_STACK_EFFECT`271272Сторожевое значение, представляющее недопустимый эффект стека.273274В настоящее время эквивалентно `INT_MAX`.275276Добавлено в версии 3.8.277278#### `int PyCompile_OpcodeStackEffect(int opcode, int oparg)`279280Вычисляет эффект стека для *opcode* с аргументом *oparg*.281282В случае успеха функция возвращает эффект стека; в случае неудачи возвращает [`PY_INVALID_STACK_EFFECT`](https://python-all.ru/3.13/c-api/veryhigh.html#c.PY_INVALID_STACK_EFFECT).283284Добавлено в версии 3.4.285286#### `int PyCompile_OpcodeStackEffectWithJump(int opcode, int oparg, int jump)`287288Подобно [`PyCompile_OpcodeStackEffect()`](https://python-all.ru/3.13/c-api/veryhigh.html#c.PyCompile_OpcodeStackEffect), но не включает эффект стека от перехода, если *jump* равен нулю.289290Если *jump* равно `0`, эффект стека от перехода не включается, но если *jump* равно `1` или `-1`, то включается.291292В случае успеха функция возвращает эффект стека; в случае неудачи возвращает [`PY_INVALID_STACK_EFFECT`](https://python-all.ru/3.13/c-api/veryhigh.html#c.PY_INVALID_STACK_EFFECT).293294Добавлено в версии 3.8.295