# 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)

  Mengembalikan nilai true jika ob adalah objek sel; ob tidak boleh `NULL`. Fungsi ini selalu berhasil.

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.