Iterator-Protokoll¶
Es gibt zwei Funktionen, die speziell für die Arbeit mit Iteratoren bestimmt sind.
-
int PyIter_Check(PyObject *o)¶
- Teil der Stable ABI seit Version 3.8.
Gibt ungleich Null zurück, wenn das Objekt o sicher an
PyIter_NextItem()übergeben werden kann, und andernfalls0. Diese Funktion schlägt niemals fehl.
-
int PyAIter_Check(PyObject *o)¶
- Teil der Stable ABI seit Version 3.10.
Gibt ungleich Null zurück, wenn das Objekt o das Protokoll für
AsyncIteratorbereitstellt, und andernfalls0. Diese Funktion schlägt niemals fehl.Hinzugefügt in Version 3.10.
-
int PyIter_NextItem(PyObject *iter, PyObject **item)¶
- Teil des Stable ABI seit Version 3.14.
Gibt
1zurück und setzt item auf eine starke Referenz des nächsten Werts des Iterators iter bei Erfolg. Gibt0zurück und setzt item aufNULL, wenn keine Werte mehr vorhanden sind. Gibt-1zurück, setzt item aufNULLund setzt eine Ausnahme bei einem Fehler.Hinzugefügt in Version 3.14.
-
PyObject *PyIter_Next(PyObject *o)¶
- Rückgabewert: Neue Referenz. Teil der Stabilen ABI.
Dies ist eine ältere Version von
PyIter_NextItem(), die aus Gründen der Abwärtskompatibilität beibehalten wird. Bevorzugen SiePyIter_NextItem().Gibt den nächsten Wert aus dem Iterator o zurück. Das Objekt muss ein Iterator gemäß
PyIter_Check()sein (es liegt in der Verantwortung des Aufrufers, dies zu überprüfen). Wenn keine Werte mehr vorhanden sind, wirdNULLohne gesetzte Ausnahme zurückgegeben. Wenn bei der Abfrage des Elements ein Fehler auftritt, wirdNULLzurückgegeben und die Ausnahme weitergereicht.
-
type PySendResult¶
Der Enum-Wert, der verschiedene Ergebnisse von
PyIter_Send()repräsentiert.Hinzugefügt in Version 3.10.
-
PySendResult PyIter_Send(PyObject *iter, PyObject *arg, PyObject **presult)¶
- Teil der Stable ABI seit Version 3.10.
Sendet den Wert arg in den Iterator iter. Gibt zurück
PYGEN_RETURN, wenn der Iterator zurückkehrt. Der Rückgabewert wird über presult zurückgegeben.PYGEN_NEXT, wenn der Iterator yield. Der ge-yieldete Wert wird über presult zurückgegeben.PYGEN_ERROR, wenn der Iterator eine Ausnahme ausgelöst hat. presult wird aufNULLgesetzt.
Hinzugefügt in Version 3.10.