Назад к задачам
Junior — Senior
6

Декоратор, выводящий сообщение при вызове метода

Получайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Условие задачи

Необходимо реализовать декоратор @trace, который при каждом вызове метода любого класса выводит строку вида "Entering function <имя_метода>". Например, при вызове метода speak() должно появиться сообщение "Entering function speak", а при вызове метода walk() — "Entering function walk".

class Person:
    def __init__(self, name):
        self.name = name
        self.distance = 0

    @trace
    def speak(self, sentence):
        print(f'{self.name}: "{sentence}"')

    @trace
    def walk(self, distance):
        self.distance += distance
        print(f'{self.name}: total distance is {self.distance} meters')