PY3.E1133

Not an iterable

Used when a non-iterable value is used in place where iterable is expected

Noncompliant Code:

Copy
class Foo:
    def __init__(self, end, start=0):
        self.n = start
        self.end = end
for i in Foo(10, start=1):
    print(i)

Compliant Code:

Copy
class Foo:
    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
for i in Foo(10, start=1):
    print(i)

The content on this page is adapted from the Pylint User Guide, Copyright ©2003-2022, Logilab, PyCQA and contributors. All rights reserved. https://pylint.pycqa.org/en/latest/index.html#, and is used under the Python Software Foundation License Version 2. Examples, recipes, and other code in the Pylint documentation are additionally licensed under the Zero Clause BSD License.