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

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

Да, можно. Декораторы для методов класса работают так же, как и для обычных функций. Однако нужно учитывать, что методы класса первым аргументом принимают self (или cls для @classmethod).

Пример декоратора для метода класса:

python
def log_method(func):
    def wrapper(self, *args, **kwargs):
        print(f"Calling {func.__name__} with args: {args}, kwargs: {kwargs}")
        return func(self, *args, **kwargs)
    return wrapper

class MyClass:
    @log_method
    def my_method(self, x, y):
        return x + y

obj = MyClass()
obj.my_method(2, 3)  # Выведет: Calling my_method with args: (2, 3), kwargs: {}

Для статических методов (@staticmethod) декоратор будет работать аналогично обычной функции, так как они не принимают self или cls.

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

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

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

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