diff options
Diffstat (limited to 'devdocs/python~3.12/c-api%2Fiter.html')
| -rw-r--r-- | devdocs/python~3.12/c-api%2Fiter.html | 46 |
1 files changed, 0 insertions, 46 deletions
diff --git a/devdocs/python~3.12/c-api%2Fiter.html b/devdocs/python~3.12/c-api%2Fiter.html deleted file mode 100644 index 9029c472..00000000 --- a/devdocs/python~3.12/c-api%2Fiter.html +++ /dev/null @@ -1,46 +0,0 @@ - <span id="iterator"></span><h1>Iterator Protocol</h1> <p>There are two functions specifically for working with iterators.</p> <dl class="c function"> <dt class="sig sig-object c" id="c.PyIter_Check"> -<code>int PyIter_Check(PyObject *o)</code> </dt> <dd> -<em class="stableabi"> Part of the <a class="reference internal" href="stable#stable"><span class="std std-ref">Stable ABI</span></a> since version 3.8.</em><p>Return non-zero if the object <em>o</em> can be safely passed to <a class="reference internal" href="#c.PyIter_Next" title="PyIter_Next"><code>PyIter_Next()</code></a>, and <code>0</code> otherwise. This function always succeeds.</p> </dd> -</dl> <dl class="c function"> <dt class="sig sig-object c" id="c.PyAIter_Check"> -<code>int PyAIter_Check(PyObject *o)</code> </dt> <dd> -<em class="stableabi"> Part of the <a class="reference internal" href="stable#stable"><span class="std std-ref">Stable ABI</span></a> since version 3.10.</em><p>Return non-zero if the object <em>o</em> provides the <code>AsyncIterator</code> protocol, and <code>0</code> otherwise. This function always succeeds.</p> <div class="versionadded"> <p><span class="versionmodified added">New in version 3.10.</span></p> </div> </dd> -</dl> <dl class="c function"> <dt class="sig sig-object c" id="c.PyIter_Next"> -<code>PyObject *PyIter_Next(PyObject *o)</code> </dt> <dd> -<em class="refcount">Return value: New reference.</em><em class="stableabi"> Part of the <a class="reference internal" href="stable#stable"><span class="std std-ref">Stable ABI</span></a>.</em><p>Return the next value from the iterator <em>o</em>. The object must be an iterator according to <a class="reference internal" href="#c.PyIter_Check" title="PyIter_Check"><code>PyIter_Check()</code></a> (it is up to the caller to check this). If there are no remaining values, returns <code>NULL</code> with no exception set. If an error occurs while retrieving the item, returns <code>NULL</code> and passes along the exception.</p> </dd> -</dl> <p>To write a loop which iterates over an iterator, the C code should look something like this:</p> <pre data-language="c">PyObject *iterator = PyObject_GetIter(obj); -PyObject *item; - -if (iterator == NULL) { - /* propagate error */ -} - -while ((item = PyIter_Next(iterator))) { - /* do something with item */ - ... - /* release reference when done */ - Py_DECREF(item); -} - -Py_DECREF(iterator); - -if (PyErr_Occurred()) { - /* propagate error */ -} -else { - /* continue doing useful work */ -} -</pre> <dl class="c type"> <dt class="sig sig-object c" id="c.PySendResult"> -<code>type PySendResult</code> </dt> <dd> -<p>The enum value used to represent different results of <a class="reference internal" href="#c.PyIter_Send" title="PyIter_Send"><code>PyIter_Send()</code></a>.</p> <div class="versionadded"> <p><span class="versionmodified added">New in version 3.10.</span></p> </div> </dd> -</dl> <dl class="c function"> <dt class="sig sig-object c" id="c.PyIter_Send"> -<code>PySendResult PyIter_Send(PyObject *iter, PyObject *arg, PyObject **presult)</code> </dt> <dd> -<em class="stableabi"> Part of the <a class="reference internal" href="stable#stable"><span class="std std-ref">Stable ABI</span></a> since version 3.10.</em><p>Sends the <em>arg</em> value into the iterator <em>iter</em>. Returns:</p> <ul class="simple"> <li> -<code>PYGEN_RETURN</code> if iterator returns. Return value is returned via <em>presult</em>.</li> <li> -<code>PYGEN_NEXT</code> if iterator yields. Yielded value is returned via <em>presult</em>.</li> <li> -<code>PYGEN_ERROR</code> if iterator has raised and exception. <em>presult</em> is set to <code>NULL</code>.</li> </ul> <div class="versionadded"> <p><span class="versionmodified added">New in version 3.10.</span></p> </div> </dd> -</dl> <div class="_attribution"> - <p class="_attribution-p"> - © 2001–2023 Python Software Foundation<br>Licensed under the PSF License.<br> - <a href="https://docs.python.org/3.12/c-api/iter.html" class="_attribution-link">https://docs.python.org/3.12/c-api/iter.html</a> - </p> -</div> |
