Sobes.tech
Junior — Middle
107

Care este diferența dintre conceptele de generator și iterator în programare?

Companiile au fost întrebate
СБЕР Бизнес
ArendadataArendadata
Soft Media Group
Криптонит
СБЕР клаудСБЕР клауд
Фабрика РешенияФабрика Решения
РунитиРунити
Т-БанкТ-Банк
AstonAston
AGIMA
Инновационный центр Безопасный транспорт
Вкусно и точкаВкусно и точка
Бергман Инфотех
АО К-Технологии

Răspuns de la 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 по одному за раз.