fork download
  1. import time
  2.  
  3. # Define o contador de funções decoradas:
  4. decorated_functions = 0
  5.  
  6. # Definição do decorador:
  7. def decorator(function):
  8.  
  9. # Incrementa o contador:
  10. decorated_functions += 1
  11.  
  12. # Inicializa o horário da última chamada:
  13. last_call = None
  14.  
  15. # Define a função de retorno:
  16. def wrapper(*args, **kwargs):
  17.  
  18. # Exibe e atualiza o horário da última chamada:
  19. print("Última chamada:", last_call)
  20. last_call = time.time()
  21.  
  22. # Chama a função decorada:
  23. function(*args, **kwargs)
  24.  
  25. return wrapper
  26.  
  27. @decorator
  28. def foo():
  29. print("Foo executada")
  30.  
  31. foo()
Runtime error #stdin #stdout #stderr 0.02s 27720KB
stdin
Standard input is empty
stdout
Standard output is empty
stderr
Traceback (most recent call last):
  File "./prog.py", line 27, in <module>
  File "./prog.py", line 10, in decorator
UnboundLocalError: local variable 'decorated_functions' referenced before assignment