Я пытаюсь распечатать имя и аргументы функции, которые вызываются экземпляром каждый раз, когда экземпляр выполняет вызов функции.
Я использую метод getattribute для реализации этого, мой код ниже
def __getattribute__(self, attr):
def newfunc(*args, **kwargs):
print( "%r Calling %r with %r %r" % (self, attr, args, kwargs))
return newfunc
Код выводит имя функции и аргументы, но исходный метод не выполняется, так как он возвращает новую функцию вместо вызова старой.
Я сделал несколько поисков, например, вопрос, самый высокий голос в этом ответе с использованием dict для извлечения функции по ее имени в словаре, я пробовал это, но это приводит к рекурсивному вызову.
Мой вопрос. есть ли способ распечатать имя и аргументы функции внутри __getattribute__method ?
или есть способ распечатать имя и аргументы функции каждый раз, когда экземпляр вызывает свой метод?
Пс. кроме использования декораторов, я знал, что могу использовать декоратор для этого, но я не хочу помещать декоратор перед каждым методом, который я использую