Zellenobjekte¶
„Zellen“-Objekte werden verwendet, um Variablen zu implementieren, auf die von mehreren Gültigkeitsbereichen zugegriffen wird. Für jede solche Variable wird ein Zellenobjekt erstellt, um den Wert zu speichern. Die lokalen Variablen jedes Stack-Frames, die auf den Wert zugreifen, enthalten eine Referenz auf die Zellen aus äußeren Gültigkeitsbereichen, die diese Variable ebenfalls verwenden. Wenn auf den Wert zugegriffen wird, wird der im Zelle enthaltene Wert anstelle des Zellenobjekts selbst verwendet. Diese Dereferenzierung des Zellenobjekts erfordert Unterstützung durch den generierten Bytecode; diese werden beim Zugriff nicht automatisch dereferenziert. Zellenobjekte sind wahrscheinlich nirgendwo anders nützlich.
-
type PyCellObject¶
Die C-Struktur, die für Zellenobjekte verwendet wird.
-
PyTypeObject PyCell_Type¶
Das Typobjekt, das Zellenobjekten entspricht.
-
int PyCell_Check(PyObject *ob)¶
Gibt wahr zurück, wenn ob ein Zellenobjekt ist; ob darf nicht
NULLsein. Diese Funktion ist immer erfolgreich.
-
PyObject *PyCell_New(PyObject *ob)¶
- Rückgabewert: Neue Referenz.
Erstellt und gibt ein neues Zellenobjekt zurück, das den Wert ob enthält. Der Parameter darf
NULLsein.
-
PyObject *PyCell_Get(PyObject *cell)¶
- Rückgabewert: Neue Referenz.
Gibt den Inhalt der Zelle cell zurück, der
NULLsein kann. Wenn cell kein Zellenobjekt ist, wirdNULLmit gesetzter Ausnahme zurückgegeben.
-
PyObject *PyCell_GET(PyObject *cell)¶
- Rückgabewert: Entliehene Referenz.
Gibt den Inhalt der Zelle cell zurück, ohne zu überprüfen, ob cell nicht
NULList und ein Zellenobjekt ist.
-
int PyCell_Set(PyObject *cell, PyObject *value)¶
Setzt den Inhalt des Zellenobjekts cell auf value. Dies gibt die Referenz auf jeden aktuellen Inhalt der Zelle frei. value darf
NULLsein. cell darf nichtNULLsein.Bei Erfolg wird
0zurückgegeben. Wenn cell kein Zellenobjekt ist, wird eine Ausnahme gesetzt und-1zurückgegeben.