Ruff invalid-first-argument-name-for-method (N805)

invalid-first-argument-name-for-method в Ruff проверяет, что первый аргумент метода экземпляра класса называется self.

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

PEP 8 рекомендует использовать self в качестве имени первого аргумента для методов экземпляров класса:

  • Методы экземпляров должны получать первым аргументом self.
  • Если имя аргумента конфликтует с зарезервированным словом, рекомендуется добавлять к нему завершающее подчеркивание (например, class_ вместо clss). Однако предпочтительнее всего использовать общеупотребимые синонимы, не искажающие смысл.

Следование этому соглашению повышает читаемость и предсказуемость кода.

Имена, на которые распространяется это правило, могут быть исключены с помощью настроек lint.pep8-naming.ignore-names или lint.pep8-naming.extend-ignore-names. Например, чтобы разрешить использование klass в качестве первого аргумента методов, установите lint.pep8-naming.extend-ignore-names в ["klass"].

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

class MyClass:
    def function(this, data):
        pass  # Использование имени аргумента "this" вместо "self"

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

class MyClass:
    def method_name(self, data):
        pass