Какие способы есть написать свой генератор

Можно через Выражение генератор

Или через Функцию генератор используя yield

Oct. 10, 2023, Источник

Существует несколько способов написания собственных генераторов. Ниже приведены основные из них:

1. С использованием функции-генератора (generator function):
   Этот способ включает определение функции с использованием ключевого слова `yield`, которое возвращает значение и приостанавливает выполнение функции, сохраняя ее текущее состояние. При следующем вызове функции выполнение продолжается с того же места, где оно остановилось. Пример:

   def my_generator():
       yield 1
       yield 2
       yield 3

   gen = my_generator()
   print(next(gen))  # Вывод: 1
   print(next(gen))  # Вывод: 2
   print(next(gen))  # Вывод: 3

2. С использованием выражения-генератора (generator expression):
   Этот способ позволяет создать генератор, используя синтаксис аналогичный списочному выражению, но с круглыми скобками вместо квадратных. Пример:

   gen = (x for x in range(3))
   print(next(gen))  # Вывод: 0
   print(next(gen))  # Вывод: 1
   print(next(gen))  # Вывод: 2

3. С использованием класса-генератора (generator class):
   В этом случае создается класс, который реализует метод `__iter__()` и использует ключевое слово `yield` для генерации значений. Пример:

   class MyGenerator:
       def __iter__(self):
           yield 1
           yield 2
           yield 3

   gen = MyGenerator()
   for value in gen:
       print(value)

Каждый из этих способов имеет свои особенности и подходит для разных сценариев использования. Выбор конкретного способа зависит от вашего предпочтения и требований к вашей программе.

Feb. 19, 2024, easyoffer