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.