Собственный итератор

Для полноты описания здесь представлен пример итератора, определенного пользователем. Если пример не очень понятен, можно вернуться к нему после изучения объектно–ориентированного программирования:

class Fibonacci:

 """Итератор последовательности Фибоначчи до N"""

 def __init__(self, N):

  self.n, self.a, self.b, self.max = 0, 0, 1, N

 def __iter__(self):

  # сами себе итератор: в классе есть метод next()

  return self

 def next(self):

  if self.n < self.max:

   a, self.n, self.a, self.b = self.a, self.n+1, self.b, self.a+self.b

   return a

  else:

   raise StopIteration

# Использование:

for i in Fibonacci(100):

 print i,

Больше книг — больше знаний!

Заберите 30% скидку новым пользователям на все книги Литрес с нашим промокодом

ПОЛУЧИТЬ СКИДКУ