iter(gis true iter( )iter(gnext( 'ssssnext( 'ppppnext( 'aaaagenerator functions work the same way at same position as this is different from the behavior of some built-in typeswhich support multiple iterators and passes and reflect their in-place changes in active iteratorsl [ iter( )iter(lnext( next( next( del [ :next( stopiteration lists support multiple iterators changes reflected in iterators though not readily apparent in these simple examplesthis can matter in your codeif you wish to scan generator' values multiple timesyou must either create new generator for each scan or build rescannable list out of its values-- single generator' values will be consumed and exhausted after single pass see this sidebar "why you will careone-shot iterationson page for prime example of the sort of code that must accommodate this generator property when we begin coding class-based iterables in part viwe'll also see that it' up to us to decide how many iterations we wish to support for our objectsif any in generalobjects that wish to support multiple scans will return supplemental class objects instead of themselves the next section previews more of this model the python yield from extension python introduces extended syntax for the yield statement that allows delegation to subgenerator with from generator clause in simple casesit' the equivalent to yielding for loop--the list here in the following forces the generator to produce all its valuesand the comprehension in parentheses is generator expressioncovered in this def both( )for in range( )yield for in ( * for in range( ))yield list(both( )[ generator functions and expressions