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

cell.md

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

1> **Источник:** https://python-all.ru/2.7/c-api/cell.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# Объекты-ячейки89Объекты «Cell» используются для реализации переменных, на которые ссылаются несколько областей видимости. Для каждой такой переменной создаётся объект ячейки, хранящий значение; локальные переменные каждого стекового кадра, ссылающегося на значение, содержат ссылку на ячейки из внешних областей видимости, которые также используют эту переменную. При обращении к значению используется значение, хранящееся в ячейке, а не сам объект ячейки. Такое разыменование объекта ячейки требует поддержки со стороны генерируемого байт-кода; они не разыменовываются автоматически при обращении. Скорее всего, объекты ячеек не пригодятся где-либо ещё.1011**`PyCellObject`**1213C-структура, используемая для объектов-ячеек.1415**[PyTypeObject](https://python-all.ru/2.7/c-api/type.html#c.PyTypeObject) `PyCell_Type`**1617Объект типа, соответствующий объектам-ячейкам.1819#### `int PyCell_Check(ob)`2021Возвращает истину, если *ob* является объектом ячейки; *ob* не должен быть равен *NULL*.2223#### `PyObject* PyCell_New(PyObject *ob)`2425*Возвращаемое значение: новая ссылка.*2627Создаёт и возвращает новый объект ячейки, содержащий значение *ob*. Параметр может быть *NULL*.2829#### `PyObject* PyCell_Get(PyObject *cell)`3031*Возвращаемое значение: новая ссылка.*3233Возвращает содержимое ячейки *cell*.3435#### `PyObject* PyCell_GET(PyObject *cell)`3637*Возвращаемое значение: заимствованная ссылка.*3839Возвращает содержимое ячейки *cell* без проверки того, что *cell* не равно *NULL* и является объектом ячейки.4041#### `int PyCell_Set(PyObject *cell, PyObject *value)`4243Устанавливает содержимое объекта ячейки *cell* в значение *value*. Это освобождает ссылку на любое текущее содержимое ячейки. *value* может быть *NULL*. *cell* должен быть не равен *NULL*; если это не объект ячейки, возвращается `-1`. В случае успеха возвращается `0`.4445#### `void PyCell_SET(PyObject *cell, PyObject *value)`4647Устанавливает значение объекта ячейки *cell* в *value*. Счётчики ссылок не корректируются, и проверки безопасности не выполняются; *cell* должен быть не равен *NULL* и должен быть объектом ячейки.48