pylint-errors

E1136 (unsubscriptable-object)

:x: Problematic code:

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


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

:heavy_check_mark: Correct code:

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

    def __getitem__(self, value):
        return self.numbers[value]


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

Rationale:

Emitted when a subscripted value doesn’t support subscription (i.e. doesn’t define __getitem__ method or __class_getitem__ for a class).