Ruff non-slot-assignment (PLE0237)

non-slot-assignment в Ruff проверяет код на предупреждение PLE0237. Правило относится к группе Pylint.

Почему это неправильно

Правило Pylint указывает на возможную ошибку, слишком сложный код или нарушение распространённых соглашений Python.

Если валидатор показывает это предупреждение, исправьте место, на которое указывает Ruff, ориентируясь на смысл правила non-slot-assignment и пример ниже.

Пример ошибки

class Student:
    __slots__ = ("name",)

    def __init__(self, name, surname):
        self.name = name
        self.surname = surname  # [assigning-non-slot]
        self.setup()

    def setup(self):
        pass

Как правильно

class Student:
    __slots__ = ("name", "surname")

    def __init__(self, name, surname):
        self.name = name
        self.surname = surname
        self.setup()

    def setup(self):
        pass

Автоисправление

Ruff не предлагает автоисправление для этого правила.