@kazakovmaksim

Что такое range() в Python 3?

Сможет ли кто-нибудь прояснить терминологию относительно range() в Python 3?
Что это такое (в конкретных терминах)?
Их range() — это класс?
В строке for i in range(x, y) — range() это функция?
Она вернет экземпляр класса (=объект) range()?
Я всё верно употребляю или есть какие-то нюансы\замечания?
  • Вопрос задан
  • 140 просмотров
Решения вопроса 1
trapwalker
@trapwalker Куратор тега Python
Программист, энтузиаст
В целом всё верно. range реализоан как класс, при его инстанцировании (или вызове в качестве функции. что в питоне, суть, одно и тоже) формируется инстанс этого класса, который поддерживает протокол получения итератора.
Если воспользоваться этим протоколом (iter(range(3, 33))), то получим итератор - инстанс класса range_iterator.
Ещё инстанс range позволяет получать доступ к элементам по индексу, делать срезы, инвертировать, получать количество элементов, проверять на вхождение элемента и т.д.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы