셀 객체
*******

"셀" 객체는 여러 스코프에서 참조하는 변수를 구현하는 데 사용됩니다. 이
러한 변수마다, 값을 저장하기 위해 셀 객체가 만들어집니다; 값을 참조하
는 각 스택 프레임의 지역 변수에는 해당 변수를 사용하는 외부 스코프의
셀에 대한 참조가 포함됩니다. 값에 액세스하면, 셀 객체 자체 대신 셀에
포함된 값이 사용됩니다. 이러한 셀 객체의 역참조(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.
