Назад к вопросам
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
Статические методы удобны для утилитарных функций, которые имеют смысл в контексте класса, но не требуют доступа к его данным.