定义__next__迭代器方法的正确方法是什么?

时间:2018-09-15 11:10:55

标签: python if-statement while-loop iterator

下面是一个迭代器,它给出了一个开始值和一个停止值,它会产生一个整数,该整数以1递增:

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

0 个答案:

没有答案