Page 35 - 6734
P. 35

метода  next  продовжує  виконання  функції  з  наступної  за  yield
           інструкції.

           def generator(n): # функція генератора (генерує
           послідовність)
               while n<3:
                   yield n # генерувати значення n
                   n+=1
           genObj=generator(0) # створити об'єкт генератора,
           який має можливість ітерації (є ітератором)
           print genObj.next(), genObj.next(), genObj.next() # 0
           1 2
           #print genObj.next() # помилка: StopIteration
           for x in generator(0): # або так
               print x, # виведе: 0 1 2
           print
           def generator2(n): # функція генератора з кількома
           інструкціями yield
               while n<3:
                   yield n # генерувати значення n
                   yield n # генерувати значення n
                   n+=1
           for x in generator2(0):
               print x, # виведе: 0 0 1 1 2 2

           0 1 2
           0 1 2
           0 0 1 1 2 2

                                    Співпрограми

               Співпрогама  –  це  функція  генератора,  яка  містить  вираз
           (yield) [19, 38]. Метод send об’єкта співпрограми передає їй дані,
           які повертаються виразом (yield).

           def coroutine(): # співпрограма обробляє
           послідовність вхідних даних
                                          34
   30   31   32   33   34   35   36   37   38   39   40