Back to questions
Т-Банк
Junior — Middle
70
Какие существуют методы реализации генератора в программировании?
Companies where asked
Answer from AI
sobes.tech AI
В программировании генератор — это объект, который позволяет итерироваться по последовательности значений, вычисляя их по мере необходимости, а не сразу.
В Python основные методы реализации генераторов:
- Использование ключевого слова
yieldв функции — самый распространённый способ. Функция сyieldприостанавливает выполнение и возвращает значение, сохраняя своё состояние для следующего вызова.
def count_up_to(n):
count = 1
while count <= n:
yield count
count += 1
for number in count_up_to(5):
print(number)
- Генераторные выражения — компактный способ создания генераторов, похожий на списковые включения, но с круглой скобкой.
squares = (x*x for x in range(5))
for sq in squares:
print(sq)
- Создание класса с методом
__iter__и__next__— более низкоуровневый способ, где объект сам реализует протокол итератора.
class CountUpTo:
def __init__(self, n):
self.n = n
self.current = 1
def __iter__(self):
return self
def __next__(self):
if self.current > self.n:
raise StopIteration
val = self.current
self.current += 1
return val
for number in CountUpTo(5):
print(number)
Все эти методы позволяют создавать последовательности значений без необходимости хранить их все в памяти сразу.