Является ли объект Range итератором?

Нет. range является итерируемым (iterable), но не итератором (iterator).

Короткий ответ

Что ответить на собеседовании

Нет. range является итерируемым (iterable), но не итератором (iterator).

Подробный разбор

Ответ с пояснениями

Нет. range является итерируемым (iterable), но не итератором (iterator).

  • Итерируемый объект - это объект, который может возвращать итератор. У него есть метод __iter__().
  • Итератор - это объект, который поддерживает протокол итератора. У него есть метод __next__() и метод __iter__(), который возвращает сам себя.

Объект range генерирует значения по требованию, но не хранит их в памяти, что делает его эффективным для больших последовательностей.

# Пример использования range
my_range = range(5)

# my_range итерируемый
print(hasattr(my_range, '__iter__')) # Вывод: True

# Он может возвращать итератор
my_iterator = iter(my_range)
print(hasattr(my_iterator, '__next__')) # Вывод: True

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее