Встречается на собеседованиях • сегодня
Как работает декоратор @classmethod
Декоратор @classmethod преобразует метод класса так, что первым аргументом вместо экземпляра (self) передаётся сам класс (cls). Это позволяет вызывать метод без создания экземпляра, а также обращаться к атрибутам класса.
Основные особенности:
- Первый параметр — всегда
cls(соглашение, можно назвать иначе, но не рекомендуется) - Может вызываться как через класс, так и через экземпляр
- Часто используется для фабричных методов (альтернативных конструкторов)
Пример:
python
class MyClass:
count = 0
@classmethod
def increment_count(cls):
cls.count += 1
return cls.count
print(MyClass.increment_count()) # 1
obj = MyClass()
print(obj.increment_count()) # 2Фабричный метод:
python
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
@classmethod
def from_birth_year(cls, name, birth_year):
return cls(name, 2024 - birth_year)
person = Person.from_birth_year('Alice', 1990)
print(person.age) # 34
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы