Sobes.tech
Back to questions
Junior — Middle
55

Каким образом реализован механизм обхода элементов через итератор при использовании цикла for в Python?

Answer from AI

sobes.tech AI

В Python цикл for работает с любым итерируемым объектом благодаря протоколу итератора. Когда начинается цикл, вызывается функция iter() на объекте, которая возвращает итератор — объект с методом __next__(). При каждой итерации вызывается __next__(), который возвращает следующий элемент. Если элементов больше нет, вызывается исключение StopIteration, и цикл завершается.

Пример:

my_list = [1, 2, 3]
iterator = iter(my_list)  # Получаем итератор

while True:
    try:
        item = next(iterator)  # Получаем следующий элемент
        print(item)
    except StopIteration:
        break  # Итерация завершена

Цикл for скрывает эту логику, делая код более лаконичным и удобным.