PY3.E1137

Unsupported assignment operation

Emitted when an object does not support item assignment (i.e. doesn't define setitem method).

Noncompliant Code:

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

    def __getitem__(self, value):
        return self.numbers[value]
foo = Foo([1, 2, 3])
foo[0] = 0
print(foo[0])

Compliant Code:

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

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

    def __setitem__(self, index, value):
        self.numbers[index] = value
foo = Foo([1, 2, 3])
foo[0] = 0
print(foo[0])

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.