Cellobjekt

”Cell”-objekt används för att implementera variabler som refereras av flera scopes. För varje sådan variabel skapas ett cellobjekt för att lagra värdet; de lokala variablerna i varje stackram som refererar till värdet innehåller en referens till de celler från yttre scopes som också använder variabeln. När värdet hämtas används värdet i cellen i stället för cellobjektet självt. Denna de-referering av cellobjektet kräver stöd från den genererade bytekoden; dessa de-refereras inte automatiskt vid åtkomst. Cellobjekt kommer sannolikt inte att vara användbara på andra ställen.

type PyCellObject

Den C-struktur som används för cellobjekt.

PyTypeObject PyCell_Type

Typobjekt som motsvarar cellobjekt.

int PyCell_Check(PyObject *ob)

Returnerar true om ob är ett cellobjekt; ob får inte vara NULL. Denna funktion lyckas alltid.

PyObject *PyCell_New(PyObject *ob)
Returnera värde: Ny referens.

Skapar och returnerar ett nytt cellobjekt som innehåller värdet ob. Parametern kan vara NULL.

PyObject *PyCell_Get(PyObject *cell)
Returnera värde: Ny referens.

Returnerar innehållet i cellen cell, som kan vara NULL. Om cell inte är ett cellobjekt returneras NULL med en undantagsuppsättning.

PyObject *PyCell_GET(PyObject *cell)
Returnera värde: Lånad referens.

Returnerar innehållet i cellen cell, men utan att kontrollera att cell inte är NULL och ett cellobjekt.

int PyCell_Set(PyObject *cell, PyObject *value)

Ställ in innehållet i cellobjektet cell till värde. Detta frigör referensen till eventuellt aktuellt innehåll i cellen. value kan vara NULL. cell måste vara icke-NULL.

Vid framgång returneras 0. Om cell inte är ett cellobjekt, anges ett undantag och returen blir -1.

void PyCell_SET(PyObject *cell, PyObject *value)

Sätter värdet på cellobjektet cell till värde. Inga referensräkningar justeras och inga kontroller görs för säkerhet; cell måste vara icke-NULL och måste vara ett cellobjekt.