pylint-errors

E0301 (non-iterator-returned)

:x: Problematic code:

class Iterator:
    def __init__(self, end, start=0):
        self.n = start
        self.end = end

    def __iter__(self):
        return self

:heavy_check_mark: Correct code:

class Iterator:
    def __init__(self, end, start=0):
        self.n = start
        self.end = end

    def __iter__(self):
        return self

    def __next__(self):
        if self.n <= self.end:
            n = self.n
            self.n += 1
            return n

        raise StopIteration

Rationale:

Used when an __iter__ method returns something which is not an iterable (i.e. has no __next__ method).