Objek Sel, *Cell*
*****************

Objek-objek "Cell" digunakan untuk mengimplementasi variabel-variabel
yang direferensikan oleh beberapa *scopes*. Untuk variable seperti
itu, sebuah objek *cell* dibuat untuk menyimpan nilai; variabel lokal
dari setiap kerangka *stack* yang mereferensikan nilai yang memiliki
referensi ke *cells* dari *scopes* luar yang juga menggunakan variabel
tersebut. Ketika nilai diakses, nilai yang dimiliki *cell* digunakan
alih-alih objek *cell* itu sendiri. *De-referencing* dari objek *cell*
ini membutuhkan dukungan dari kode *byte* yang dihasilkan;  bagian ini
tidak secara otomatis mengalami *de-referenced* ketika diakses. Objek-
objek *Cell* sepertinya tidak akan berguna di tempat lain.

PyCellObject

   Struktur C digunakan untuk objek sel.

PyTypeObject PyCell_Type

   Tipe objek yang sesuai dengan objek sel.

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.*

   Membuat dan mengembalikan objek *cell* baru yang memiliki nilai
   *ob*. Parameter dibolehkan "NULL".

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

   Kembalikan isi sel *cell*.

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

   Kembalikan isi dari sel *cell*, tanpa mengecek jika *cell*
   merupakan >>*<<non->>*<<"NULL" dan sebuah objek >>*<<cell.

int PyCell_Set(PyObject *cell, PyObject *value)

   Mengatur konten dari objek sel *cell* ke *value*. Ini akan
   menghasilkan referensi ke konten terkini dari sebuah *cell*.
   *value* dibolehkan "NULL". *cell* harus non-"NULL". Jika bukan
   objek sel, "-1" akan dikembalikan. Ketika berhasil, "0" akan
   dikembalikan.

void PyCell_SET(PyObject *cell, PyObject *value)

   Mengatur nilai dari objek sel *cell* ke *value*. Tidak ada hitungan
   referensi yang diatur, dan tidak ada pengecekan untuk
   keamanan;*cell* harus non-"NULL" dan harus merupakan sebuah objek
   sel.
