Sobes.tech
Middle

Bir yineleyici ve yineleyebilir nesne nedir? Hangi yöntemleri uygulamalıdırlar? For döngüsü nasıl çalışır?

sobes.tech yapay zeka

AI'dan gelen yanıt

Итератор — это объект, который реализует метод __next__(), возвращающий следующий элемент последовательности, и метод __iter__(), который возвращает сам итератор. Итерируемый объект (iterable) — это объект, который реализует метод __iter__(), возвращающий итератор.

То есть:

  • iterable должен иметь метод __iter__(), который возвращает итератор;
  • итератор должен иметь методы __iter__() (возвращает себя) и __next__() (возвращает следующий элемент или вызывает StopIteration).

Цикл for под капотом вызывает iter() на итерируемом объекте, чтобы получить итератор, затем в цикле вызывает next() на итераторе, пока не возникнет исключение StopIteration.

Пример:

my_list = [1, 2, 3]
iterator = iter(my_list)  # вызывает my_list.__iter__()
print(next(iterator))  # 1
print(next(iterator))  # 2
print(next(iterator))  # 3
# next(iterator) вызовет StopIteration