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()och0annars. 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, och0annars. 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
1och sätter item till en strong reference av nästa värde i iteratorn iter vid framgång. Returnerar0och sätter item tillNULLom det inte finns några återstående värden. Returnerar\-1, sätter item tillNULLoch 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 returnerasNULLutan att något undantag anges. Om ett fel inträffar när objektet hämtas, returnerasNULLoch 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_RETURNom iteratorn returnerar. Returvärdet returneras via presult.PYGEN_NEXTom iteratorn ger något. Värdet returneras via presult.PYGEN_ERRORom iteratorn har orsakat ett undantag. presult är satt tillNULL.
Tillagd i version 3.10.