Зачем нужен @classmethod в Python

Python Middle Без компании
Зачем нужен @classmethod в Python
Ответы
`@classmethod` — это декоратор, который превращает метод в метод класса. Он принимает первым аргументом `cls` (сам класс), а не `self` (экземпляр). Используется для: - **Альтернативных конструкторов** — создание объектов разными способами. - **Доступа к классу** — когда нужен класс, а не экземпляр. - **Изменения состояния класса** — например, модификация class-level переменных. Пример: ``` class Person: def __init__(self, name): self.name = name @classmethod def from_json(cls, json_data): return cls(json_data["name"]) # Использование data = {"name": "Alice"} person = Person.from_json(data) # Альтернативный конструктор ``` Обычно `@classmethod` применяют для фабричных методов или операций, связанных с классом, а не экземпляром.