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

cell.md

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

1> **Источник:** https://python-all.ru/3.0/c-api/cell.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# Объекты-ячейки89Объекты «Cell» используются для реализации переменных, на которые ссылаются несколько областей видимости. Для каждой такой переменной создаётся объект ячейки, хранящий значение; локальные переменные каждого стекового кадра, ссылающегося на значение, содержат ссылку на ячейки из внешних областей видимости, которые также используют эту переменную. При обращении к значению используется значение, хранящееся в ячейке, а не сам объект ячейки. Такое разыменование объекта ячейки требует поддержки со стороны генерируемого байт-кода; они не разыменовываются автоматически при обращении. Скорее всего, объекты ячеек не пригодятся где-либо ещё.1011**\[PyCellObject\]`PyCellObject`**1213C-структура, используемая для объектов-ячеек.1415**\[PyCell\_Type\][PyTypeObject](https://python-all.ru/3.0/c-api/type.html#PyTypeObject) `PyCell_Type`**1617Объект типа, соответствующий объектам-ячейкам.1819**\[PyCell\_Check\]int `PyCell_Check`(ob)**2021Возвращает истину, если2223*ob*2425является объектом ячейки;2627*ob*2829не должен быть равен3031*NULL*3233.3435**\[PyCell\_New\][PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject)\* `PyCell_New`([PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject) *\*ob*)**3637*Возвращаемое значение: новая ссылка.*3839Создаёт и возвращает новый объект ячейки, содержащий значение *ob*. Параметр может быть *NULL*.4041**\[PyCell\_Get\][PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject)\* `PyCell_Get`([PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject) *\*cell*)**4243*Возвращаемое значение: новая ссылка.*4445Возвращает содержимое ячейки *cell*.4647**\[PyCell\_GET\][PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject)\* `PyCell_GET`([PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject) *\*cell*)**4849*Возвращаемое значение: заимствованная ссылка.*5051Возвращает содержимое ячейки *cell* без проверки того, что *cell* не равно *NULL* и является объектом ячейки.5253**\[PyCell\_Set\]int `PyCell_Set`([PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject) *\*cell*, [PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject) *\*value*)**5455Устанавливает содержимое объекта ячейки5657*cell*5859в значение6061*value*6263. Это освобождает ссылку на любое текущее содержимое ячейки.6465*value*6667может быть6869*NULL*7071.7273*cell*7475должен быть не равен7677*NULL*7879; если это не объект ячейки, возвращается8081`-1`8283. В случае успеха возвращается8485`0`8687.8889**\[PyCell\_SET\]void `PyCell_SET`([PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject) *\*cell*, [PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject) *\*value*)**9091Устанавливает значение объекта ячейки9293*cell*9495в9697*value*9899. Счётчики ссылок не корректируются, и проверки безопасности не выполняются;100101*cell*102103должен быть не равен104105*NULL*106107и должен быть объектом ячейки.108