Ниже приведен итератор, который задает начальные и конечные значения и возвращает целые числа, увеличивающиеся на единицу:
class Iterator:
def __init__(self, start, stop):
self.start = start
self.stop = stop
self._start = self.start
def __iter__(self):
return self
def __next__(self):
self.current = self._start
if self.current >= self.stop:
raise StopIteration
self._start += 1
return self.current
Я вижу вышеупомянутую версию, используемую всеми. Не будет ли следующая версия более читабельной? Также избегает использования условного выражения if
, если это хорошо.
def __next__(self):
self.current = self._start
while self.current < self.stop:
self._start += 1
return self.current
raise StopIteration