Что такое @classmethod в Python

Python Junior Без компании
Что такое @classmethod в Python
Ответы
`@classmethod` — это декоратор, который превращает метод в метод класса. Такой метод принимает первым аргументом сам класс (`cls`), а не экземпляр (`self`). **Основные особенности:** - Работает с классом, а не с экземпляром. - Может вызываться как через класс, так и через экземпляр. - Часто используется для фабричных методов или альтернативных конструкторов. **Пример:** ``` class MyClass: @classmethod def from_string(cls, string): return cls(int(string)) obj = MyClass.from_string("42") # Создаёт экземпляр MyClass(42) ``` **Отличие от `@staticmethod`:** - `@classmethod` получает класс (`cls`), а `@staticmethod` — ничего не получает. - `@classmethod` может изменять состояние класса, `@staticmethod` — нет.