Sobes.tech
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 приостанавливает выполнение, сохраняя локальные переменные и позицию, что позволяет эффективно перебирать элементы без создания полного списка в памяти.