Sobes.tech
Back to questions
Junior — Middle
57

Какие типы данных или объекты поддерживают протокол итерации?

Answer from AI

sobes.tech AI

В Python протокол итерации поддерживают объекты, которые реализуют метод __iter__() или __getitem__() с последовательными индексами. К таким объектам относятся:

  • Встроенные коллекции: списки (list), кортежи (tuple), множества (set), словари (dict), строки (str).
  • Генераторы и итераторы, созданные с помощью функций с yield.
  • Пользовательские классы, реализующие метод __iter__().

Пример пользовательского итератора:

class Count:
    def __init__(self, low, high):
        self.current = low
        self.high = high

    def __iter__(self):
        return self

    def __next__(self):
        if self.current > self.high:
            raise StopIteration
        else:
            self.current += 1
            return self.current - 1

for number in Count(1, 5):
    print(number)

Этот код выведет числа от 1 до 5, демонстрируя работу протокола итерации.