Back to questions
Arendadata
СБЕР клауд
Фабрика Решения
Рунити
Т-Банк
Aston
Вкусно и точка
Junior — Middle
66
Чем отличаются концепции генератора и итератора в программировании?
Companies where asked
СБЕР Бизнес
Soft Media Group
Криптонит
AGIMA
Инновационный центр Безопасный транспорт
Бергман Инфотех
АО К-Технологии
Answer from AI
sobes.tech AI
Генератор — это специальная функция, которая возвращает итератор и позволяет поэтапно выдавать значения с помощью ключевого слова yield. Итератор — это объект, который реализует метод __next__() и возвращает следующий элемент последовательности при каждом вызове.
Основные отличия:
- Генератор создаёт итератор автоматически, когда вызывается.
- Итератор — более общий интерфейс, который можно реализовать вручную в классе.
- Генераторы удобны для ленивой генерации последовательностей без необходимости писать класс.
Пример генератора:
def count_up_to(n):
count = 1
while count <= n:
yield count
count += 1
for num in count_up_to(5):
print(num)
Здесь count_up_to — генератор, который возвращает числа от 1 до n по одному за раз.