Объекты-ячейки¶Cell Objects
Объекты «Cell» используются для реализации переменных, на которые ссылаются несколько областей видимости. Для каждой такой переменной создаётся объект ячейки, хранящий значение; локальные переменные каждого стекового кадра, ссылающегося на значение, содержат ссылку на ячейки из внешних областей видимости, которые также используют эту переменную. При обращении к значению используется значение, хранящееся в ячейке, а не сам объект ячейки. Такое разыменование объекта ячейки требует поддержки со стороны генерируемого байт-кода; они не разыменовываются автоматически при обращении. Скорее всего, объекты ячеек не пригодятся где-либо ещё.
-
PyCellObject¶ C-структура, используемая для объектов-ячеек.
-
PyTypeObject
PyCell_Type¶ Объект типа, соответствующий объектам-ячейкам.
-
int
PyCell_Check(ob)¶ Возвращает истину, если ob является объектом ячейки; ob не должен быть равен NULL.
-
PyObject*
PyCell_New(PyObject *ob)¶ - Возвращаемое значение: новая ссылка.
Создаёт и возвращает новый объект ячейки, содержащий значение ob. Параметр может быть NULL.
-
PyObject*
PyCell_Get(PyObject *cell)¶ - Возвращаемое значение: новая ссылка.
Возвращает содержимое ячейки cell.
-
PyObject*
PyCell_GET(PyObject *cell)¶ - Возвращаемое значение: заимствованная ссылка.
Возвращает содержимое ячейки cell без проверки того, что cell не равно NULL и является объектом ячейки.
-
int
PyCell_Set(PyObject *cell, PyObject *value)¶ Устанавливает содержимое объекта ячейки cell в значение value. Это освобождает ссылку на любое текущее содержимое ячейки. value может быть NULL. cell должен быть не равен NULL; если это не объект ячейки, возвращается
-1. В случае успеха возвращается0.