Cómo utilizar decoradores para registrar funciones de devolución de llamada en Python
Siempre supe que los decoradores pueden mejorar un método existente. Python también proporciona métodos de anotación, que son muy útiles, pero cuando miré el paquete de extensión de flask login, descubrí que los decoradores también pueden implementar devoluciones de llamada. Función de registro de función.
El inicio de sesión de Flask registra la función de devolución de llamada a través del siguiente decorador. Cuando no hay un ID de sesión, el usuario ingresa a la sesión a través de la función especificada por el decorador.
>@login_manager.user_loader
A continuación se escribe un ejemplo de prueba simple para demostrar esta función.
importar tiempo
importar funciones
clase Test():
#/**feature llamará a callback(), pero no existe una definición real de callback**/
def feature(self) en Test: p>
self.callback()
def decorar(self, func):
self.callback=func
retorno func
p>
test = Test()
#/**Registrar foo como función de devolución de llamada*//
@test.decorate
def foo ():
print 'in foo()'
#/**La función de llamada activará la función de devolución de llamada**/
prueba. característica()