Встречается на собеседованиях • сегодня

Можно ли использовать декоратор для класса в Python

Да, декораторы можно применять не только к функциям, но и к классам. Декоратор класса принимает сам класс как аргумент и возвращает модифицированный класс или новый класс. Это удобно для добавления функциональности, проверок или изменения поведения класса.

Пример:

python
def add_method(cls):
    def greet(self):
        return "Hello from decorator!"
    cls.greet = greet
    return cls

@add_method
class MyClass:
    pass

obj = MyClass()
print(obj.greet())  # Выведет: Hello from decorator!

Нюансы:

  1. Декоратор выполняется сразу при определении класса
  2. Можно изменять/добавлять методы, атрибуты
  3. Часто используется для регистрации классов, добавления метаданных
  4. Альтернатива наследованию в некоторых случаях

Распространённые примеры использования: @dataclass, @property, @staticmethod в стандартной библиотеке.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы