Estoy implementando un servicio web RESTful en python y me gustaría agregar algunas funciones de registro QOS al interceptar llamadas a funciones y registrar su tiempo de ejecución, etc.Llamadas a métodos de interceptación en Python
Básicamente pensé en una clase de la que todos los demás servicios pueden heredar, que automáticamente anula las implementaciones de métodos por defecto y las envuelve en una función de registrador. ¿Cuál es la mejor manera de lograr esto?
Este código es un poco extraño en el sentido de que si 'attr' no tiene un atributo' __call__' (que, dicho sea de paso, es ligeramente diferente de no ser llamado), esto da un 'NameError' en lugar de devolver el atributo. Además, 'attr .__ call __ (* args, ** kwargs)' usualmente se deletrea 'attr (* args, ** kwargs)'. –
perfecto, justo lo que necesito. He hecho algo similar, pero en el método init y de alguna manera lo arruiné, pero tu enfoque funcionó como un hechizo. Gracias. –
@Mike: de hecho, si olvidó la cláusula else. Mezclaba python2.6 y 3 por cierto, por lo tanto, no usaba el programador invocable. En 3, realmente no conozco una forma más directa de verificar esto. – KillianDS