Встречается на собеседованиях • сегодня

В чем разница между функцией и генератором

Функция возвращает результат выполнения через return и завершает работу. Генератор использует yield, приостанавливает выполнение и сохраняет состояние между вызовами, возвращая значения по одному.

Ключевые отличия:

  • Функция выполняется полностью за один вызов, генератор — по частям
  • Генератор экономит память, так как не хранит все элементы сразу
  • Генератор сохраняет состояние между вызовами

Пример функции:

python
def squares(n):
    result = []
    for i in range(n):
        result.append(i**2)
    return result  # Возвращает весь список сразу

Пример генератора:

python
def squares_gen(n):
    for i in range(n):
        yield i**2  # Возвращает по одному значению при каждом вызове

Генераторы особенно полезны при работе с большими наборами данных или бесконечными последовательностями.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы