Итератор - предоставляет способ последовательного доступа к элементам составного объекта без раскрытия его внутренней структуры.
Используется в словарях, списках, множествах, в итерациях по строкам, генераторах и ORM-запросах.
Пример: `from collections.abc import Iterator, Iterable
class AlphabeticalOrderIterator(Iterator): def init(self, collection, reverse=False): self.collection = sorted(collection) self.reverse = reverse self._position = -1 if reverse else 0
def next(self): try: value = self.collection[self.position] self.position += -1 if self.reverse else 1 return value except IndexError: raise StopIteration()
class WordsCollection(Iterable): def init(self): self._items = []
def add_item(self, item): self._items.append(item)
def iter(self): return AlphabeticalOrderIterator(self._items)
def get_reverse_iterator(self): return AlphabeticalOrderIterator(self._items, True)
#Использованиеcollection = WordsCollection() collection.add_item("First") collection.add_item("Second") collection.add_item("Third")
print("Прямой порядок:") for item in collection: print(item)
print("nОбратный порядок:") for item in collection.get_reverse_iterator(): print(item) #weekofpatterns`