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