Back to questions
Junior — Middle
57
Каким образом реализуется механизм перебора элементов в генераторе?
Answer from AI
sobes.tech AI
В Python генератор реализует механизм перебора элементов через специальный объект-итератор, который сохраняет своё состояние между вызовами.
Когда функция с yield вызывается, она возвращает генератор — объект, поддерживающий метод __next__(). При каждом вызове next() выполнение функции продолжается с места последнего yield, возвращая следующее значение. Если генератор заканчивается, вызывается исключение StopIteration.
Пример генератора перебора чисел:
def count_up_to(max_value):
count = 1
while count <= max_value:
yield count
count += 1
for number in count_up_to(5):
print(number)
Здесь yield приостанавливает выполнение, сохраняя локальные переменные и позицию, что позволяет эффективно перебирать элементы без создания полного списка в памяти.