python and some backend notes(ru)
108 subscribers
5 photos
1 file
192 links
Личные заметки и ссылки на статьи по python и backend вопросам, но может кому-то тоже будет интересно
Download Telegram
* Итерируемый объект — это что-то, что можно итерировать.
* Итератор — это сущность порождаемая функцией iter, с помощью которой происходит итерирование итерируемого объекта.
* Итератор не имеет индексов и может быть использован только один раз.
* Итератор имеет методы __next__ __iter__, а также вызывает исключение StopIteration при невозможности получения следующего элемента
* В случае, если мы передаём в iter итератор, то получаем тот же самый итератор

class InfiniteSquaring:
"""Класс обеспечивает бесконечное последовательное возведение в квадрат заданного числа."""
def __init__(self, initial_number):
# Здесь хранится промежуточное значение
self.number_to_square = initial_number

def __next__(self):
# Здесь мы обновляем значение и возвращаем результат
self.number_to_square = self.number_to_square ** 2
return self.number_to_square

def __iter__(self):
"""Этот метод позволяет при передаче объекта функции iter возвращать самого себя, тем самым в точности реализуя протокол итератора."""
return self

#iterrator #iter #next