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

Что может быть декоратором

Декоратором в Python может быть любой вызываемый объект (callable), который принимает функцию и возвращает функцию. Основные варианты:

  1. Функция - самый распространённый случай:
python
def my_decorator(func):
    def wrapper(*args, **kwargs):
        print("До вызова функции")
        result = func(*args, **kwargs)
        print("После вызова функции")
        return result
    return wrapper
  1. Класс (если он реализует метод __call__):
python
class DecoratorClass:
    def __init__(self, func):
        self.func = func
    
    def __call__(self, *args, **kwargs):
        print("Декоратор-класс")
        return self.func(*args, **kwargs)
  1. Метод класса (если используется с @classmethod или @staticmethod)

  2. Лямбда-функция (но с ограничениями, так как может содержать только одно выражение)

Декоратор должен принимать функцию и возвращать функцию (или другой вызываемый объект). В Python 3.9+ также можно использовать @ с любым выражением, которое вычисляется в декоратор.

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

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

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

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