mirror of
				https://github.com/python/cpython.git
				synced 2025-11-03 19:34:08 +00:00 
			
		
		
		
	Added documentation for PyIter_Check() and PyIter_Next().
Wrapped a long line.
This commit is contained in:
		
							parent
							
								
									8572b4fedf
								
							
						
					
					
						commit
						dbcaeda79a
					
				
					 1 changed files with 39 additions and 1 deletions
				
			
		| 
						 | 
					@ -2082,13 +2082,51 @@ Return element of \var{o} corresponding to the object \var{key} or
 | 
				
			||||||
\samp{\var{o}[\var{key}]}.
 | 
					\samp{\var{o}[\var{key}]}.
 | 
				
			||||||
\end{cfuncdesc}
 | 
					\end{cfuncdesc}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
\begin{cfuncdesc}{int}{PyMapping_SetItemString}{PyObject *o, char *key, PyObject *v}
 | 
					\begin{cfuncdesc}{int}{PyMapping_SetItemString}{PyObject *o, char *key,
 | 
				
			||||||
 | 
					                                                PyObject *v}
 | 
				
			||||||
Map the object \var{key} to the value \var{v} in object \var{o}.
 | 
					Map the object \var{key} to the value \var{v} in object \var{o}.
 | 
				
			||||||
Returns \code{-1} on failure.  This is the equivalent of the Python
 | 
					Returns \code{-1} on failure.  This is the equivalent of the Python
 | 
				
			||||||
statement \samp{\var{o}[\var{key}] = \var{v}}.
 | 
					statement \samp{\var{o}[\var{key}] = \var{v}}.
 | 
				
			||||||
\end{cfuncdesc}
 | 
					\end{cfuncdesc}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					\section{Iterator Protocol \label{iterator}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					There are only a couple of functions specifically for working with
 | 
				
			||||||
 | 
					iterators.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					\begin{cfuncdesc}{int}{PyIter_Check}{PyObject *o}
 | 
				
			||||||
 | 
					  Return true if the object \var{o} supports the iterator protocol.
 | 
				
			||||||
 | 
					\end{cfuncdesc}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					\begin{cfuncdesc}{PyObject*}{PyIter_Next}{PyObject *o}
 | 
				
			||||||
 | 
					  Return the next value from the iteration \var{o}.  If the object is
 | 
				
			||||||
 | 
					  an iterator, this retrieves the next value from the iteration, and
 | 
				
			||||||
 | 
					  returns \NULL{} with no exception set if there are no remaining
 | 
				
			||||||
 | 
					  items.  If the object is not an iterator, \exception{TypeError} is
 | 
				
			||||||
 | 
					  raised, or if there is an error in retrieving the item, returns
 | 
				
			||||||
 | 
					  \NULL{} and passes along the exception.
 | 
				
			||||||
 | 
					\end{cfuncdesc}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					To write a loop which iterates over an iterator, the C code should
 | 
				
			||||||
 | 
					look something like this:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					\begin{verbatim}
 | 
				
			||||||
 | 
					PyObject *iterator = ...;
 | 
				
			||||||
 | 
					PyObject *item;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					while (item = PyIter_Next(iter)) {
 | 
				
			||||||
 | 
					    /* do something with item */
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					if (PyErr_Occurred()) {
 | 
				
			||||||
 | 
					    /* propogate error */
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					else {
 | 
				
			||||||
 | 
					    /* continue doing useful work */
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					\end{verbatim}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
\chapter{Concrete Objects Layer \label{concrete}}
 | 
					\chapter{Concrete Objects Layer \label{concrete}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
The functions in this chapter are specific to certain Python object
 | 
					The functions in this chapter are specific to certain Python object
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue