Почему атрибут call_count из первого декоратора теряется после использования второго декоратора.
Он все еще существует в памяти, но я не могу найти к нему доступ?
Код: Выделить всё
def fib(n):
if n == 0:
return 0
elif n == 1:
return 1
else:
return fib(n - 2) + fib(n - 1)
def count(f):
def counted(n):
counted.call_count += 1
return f(n)
counted.call_count = 0
return counted
def count_frames(f):
def counted(n):
counted.open_count += 1
counted.max_count = max(counted.max_count, counted.open_count)
result = f(n)
counted.open_count -= 1
return result
counted.open_count = 0
counted.max_count = 0
return counted
fib = count(fib)
fib = count_frames(fib)
print(fib(19), fib.__dict__)
но он содержит только атрибуты «open_count» и «max_count» из второго декоратора
Подробнее здесь: https://stackoverflow.com/questions/787 ... o-a-functi