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. # Importa para o escopo local a variável global:
  10. global decorated_functions
  11.  
  12. # Incrementa o contador:
  13. decorated_functions += 1
  14.  
  15. # Inicializa o horário da última chamada:
  16. last_call = None
  17.  
  18. # Define a função de retorno:
  19. def wrapper(*args, **kwargs):
  20.  
  21. # Importa para o escopo local a variável:
  22. nonlocal last_call
  23.  
  24. # Exibe e atualiza o horário da última chamada:
  25. last_call = time.time()
  26. print("Última chamada:", last_call)
  27.  
  28. # Chama a função decorada:
  29. function(*args, **kwargs)
  30.  
  31. return wrapper
  32.  
  33. @decorator
  34. def foo():
  35. print("Foo executada")
  36.  
  37. foo()
Success #stdin #stdout 0.02s 28384KB
stdin
Standard input is empty
stdout
Última chamada: 1509139385.3831065
Foo executada