Зачем нужен @classmethod в Python
Python
Middle
Arendadata
Зачем нужен @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` применяют для фабричных методов или операций, связанных с классом, а не экземпляром.