¿Cuál es el contrato básico de un decorador de funciones de Python?
Acepta una función, añade o modifica su comportamiento y devuelve un reemplazo invocable.
Edita permanentemente el archivo de código fuente de la función original.
Solo puede ejecutar una vez la función original y no puede devolverla.
Solo puede aceptar clases y debe devolver un entero.