Ruff self-or-cls-assignment (PLW0642)

self-or-cls-assignment в Ruff проверяет код на предупреждение PLW0642. Правило относится к группе Pylint.

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

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

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

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

class Version:
    def add(self, other):
        self = self + other
        return self

    @classmethod
    def superclass(cls):
        cls = cls.__mro__[-1]
        return cls

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

class Version:
    def add(self, other):
        new_version = self + other
        return new_version

    @classmethod
    def superclass(cls):
        supercls = cls.__mro__[-1]
        return supercls

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

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