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

type PyCellObject

  Struktur C digunakan untuk objek sel.

PyTypeObject PyCell_Type

  Tipe objek yang sesuai dengan objek sel.

int PyCell_Check(PyObject *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.

  Return the contents of the cell cell, which can be `NULL`. If cell is not a cell object, returns `NULL` with an exception set.

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)

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

  On success, return `0`. If cell is not a cell object, set an exception and return `-1`.

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.