Iteratorprotokoll¶
Det finns två funktioner som är särskilt avsedda för att arbeta med iteratorer.
-
int PyIter_Check(PyObject *o)¶
- En del av Stabil ABI sedan version 3.8.
Returnerar icke-noll om objektet o säkert kan skickas till
PyIter_NextItem()
och0
annars. Denna funktion lyckas alltid.
-
int PyAIter_Check(PyObject *o)¶
- En del av Stabil ABI sedan version 3.10.
Returnerar icke-noll om objektet o tillhandahåller protokollet
AsyncIterator
, och0
annars. Denna funktion lyckas alltid.Tillagd i version 3.10.
-
int PyIter_NextItem(PyObject *iter, PyObject **item)¶
- En del av Stabil ABI sedan version 3.14.
Returnerar
1
och sätter item till en strong reference av nästa värde i iteratorn iter vid framgång. Returnerar0
och sätter item tillNULL
om det inte finns några återstående värden. Returnerar-1
, sätter item tillNULL
och sätter ett undantag vid error.Tillagd i version 3.14.
-
PyObject *PyIter_Next(PyObject *o)¶
- Returnera värde: Ny referens. En del av Stabil ABI.
Detta är en äldre version av
PyIter_NextItem()
, som behålls för bakåtkompatibilitet. FöredrarPyIter_NextItem()
.Returnerar nästa värde från iteratorn o. Objektet måste vara en iterator enligt
PyIter_Check()
(det är upp till den som anropar att kontrollera detta). Om det inte finns några återstående värden returnerasNULL
utan att något undantag anges. Om ett fel inträffar när objektet hämtas, returnerasNULL
och undantaget skickas vidare.
-
type PySendResult¶
Det enumvärde som används för att representera olika resultat av
PyIter_Send()
.Tillagd i version 3.10.
-
PySendResult PyIter_Send(PyObject *iter, PyObject *arg, PyObject **presult)¶
- En del av Stabil ABI sedan version 3.10.
Skickar arg-värdet till iteratorn iter. Returnerar:
PYGEN_RETURN
om iteratorn returnerar. Returvärdet returneras via presult.PYGEN_NEXT
om iteratorn ger något. Värdet returneras via presult.PYGEN_ERROR
om iteratorn har orsakat ett undantag. presult är satt tillNULL
.
Tillagd i version 3.10.