В чем разница между итераторами и генераторами?
Другие предметы Университет Итераторы и генераторы в Python программирование на Python итераторы генераторы разница между итераторами и генераторами Python для студентов основы Python обучение Python университетское программирование Python в учебе Новый
Отличный вопрос! Давайте разберем разницу между итераторами и генераторами в Python.
Итератор:
__iter__()
, возвращающий сам объект, и метод __next__()
, который возвращает следующий элемент последовательности.__next__()
возвращает следующий элемент, а когда элементы заканчиваются, возбуждается исключение StopIteration
.for
, которые автоматически вызывают __iter__()
и __next__()
.Генератор:
yield
.__next__()
и продолжается до первого yield
.yield
, функция приостанавливает свое состояние и возвращает значение. При следующем вызове __next__()
выполнение продолжается с точки, где оно было приостановлено.Таким образом, основное различие заключается в том, что:
Надеюсь, теперь вам стало понятнее, как работают итераторы и генераторы в Python!