Что такое @staticmethod в Python
Python
Middle
Без компании
Что такое @staticmethod в Python
Ответы
`@staticmethod` — это декоратор, который превращает метод класса в статический. Такой метод не получает неявных аргументов (`self` или `cls`) и ведёт себя как обычная функция, но принадлежит пространству имён класса.
**Особенности:**
- Не требует экземпляра (`self`) или класса (`cls`) в аргументах.
- Может быть вызван как через класс, так и через экземпляр.
- Не имеет доступа к атрибутам класса или экземпляра (если не переданы явно).
**Пример:**
```
class MathUtils:
@staticmethod
def add(a, b):
return a + b
# Вызов без создания экземпляра
print(MathUtils.add(2, 3)) # 5
# Через экземпляр
utils = MathUtils()
print(utils.add(5, 7)) # 12
```
**Когда использовать:**
- Для логической группировки функций внутри класса.
- Если метод не зависит от состояния класса/экземпляра.