Чтобы получить объект-итератор, нужно создать объект, который будет иметь два метода со специальными именами:
__iter__() - метод, который возвращает сам объект.
next() - метод, который возвращает следующее значение итератора.
Проверка:
__iter__() - метод, который возвращает сам объект.
next() - метод, который возвращает следующее значение итератора.
class SimpleIterator(object):
def __init__(self,fname):
self.fd = open(fname,'r')
def __iter__(self):
return self
def next(self):
l = self.fd.readline()
if l != '':
l = l.rstrip('\n')
num = int(l)
return num*2
raise StopIteration
Проверка:
>>> simple_iter = SimpleIterator('test_data.txt')
>>> for i in simple_iter:
... print i
6
8
Комментариев нет:
Отправить комментарий