Sobes.tech
Назад к вопросам
Junior — Middle
76

Какое назначение у декоратора @staticmethod в Python и в чем его отличие от обычных методов класса?

Ответ от нейросети

sobes.tech AI

Декоратор @staticmethod в Python используется для определения метода внутри класса, который не зависит от экземпляра класса и не принимает автоматически параметр self.

Отличия от обычных методов:

  • Обычные методы принимают первым параметром self — ссылку на текущий экземпляр класса.
  • Статические методы не принимают ни self, ни cls (ссылку на класс).

Это значит, что статический метод — это просто функция, логически связанная с классом, но не использующая его состояние.

Пример:

class MyClass:
    @staticmethod
    def static_method(x, y):
        return x + y

    def instance_method(self, x, y):
        return x * y

print(MyClass.static_method(3, 4))  # 7
obj = MyClass()
print(obj.instance_method(3, 4))   # 12

Статические методы удобны для утилитарных функций, которые имеют смысл в контексте класса, но не требуют доступа к его данным.