Junior — Middle
107
Care este diferența dintre conceptele de generator și iterator în programare?
Companiile au fost întrebate
СБЕР Бизнес
Soft Media Group
Криптонит
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 по одному за раз.