pylint-errors

E1135 (unsupported-membership-test)

:x: Problematic code:

class Foo:
    def __init__(self, numbers):
        self.numbers = numbers


foo = Foo([1, 2, 3, 4])
print(1 in foo)

:heavy_check_mark: Correct code:

class Foo:
    def __init__(self, numbers):
        self.numbers = numbers

    def __contains__(self, value):
        return value in self.numbers


foo = Foo([1, 2, 3, 4])
print(1 in foo)

Rationale:

Emitted when an instance in membership test expression doesn’t implement membership protocol (__contains__/__iter__/__getitem__).