# 셀 객체

“셀” 객체는 여러 스코프에서 참조하는 변수를 구현하는 데 사용됩니다. 이러한 변수마다, 값을 저장하기 위해 셀 객체가 만들어집니다; 값을 참조하는 각 스택 프레임의 지역 변수에는 해당 변수를 사용하는 외부 스코프의 셀에 대한 참조가 포함됩니다. 값에 액세스하면, 셀 객체 자체 대신 셀에 포함된 값이 사용됩니다. 이러한 셀 객체의 역참조(de-referencing)는 생성된 바이트 코드로부터의 지원이 필요합니다; 액세스 시 자동으로 역참조되지 않습니다. 셀 객체는 다른 곳에 유용하지는 않습니다.

`PyCellObject`

  셀 객체에 사용되는 C 구조체.

PyTypeObject `PyCell_Type`

  셀 객체에 해당하는 형 객체.

int `PyCell_Check`(ob)

  Return true if ob is a cell object; ob must not be `NULL`.

PyObject* `PyCell_New`(PyObject *ob)
  Return value: New reference.

  Create and return a new cell object containing the value ob. The parameter may be `NULL`.

PyObject* `PyCell_Get`(PyObject *cell)
  Return value: New reference.

  셀 cell의 내용을 반환합니다.

PyObject* `PyCell_GET`(PyObject *cell)
  Return value: Borrowed reference.

  Return the contents of the cell cell, but without checking that cell is non-`NULL` and a cell object.

int `PyCell_Set`(PyObject *cell, PyObject *value)

  Set the contents of the cell object cell to value. This releases the reference to any current content of the cell. value may be `NULL`. cell must be non-`NULL`; if it is not a cell object, `-1` will be returned. On success, `0` will be returned.

void `PyCell_SET`(PyObject *cell, PyObject *value)

  Sets the value of the cell object cell to value. No reference counts are adjusted, and no checks are made for safety; cell must be non-`NULL` and must be a cell object.