Chcę użyć dekoratora do obsługi audytu różnych funkcji (głównie funkcji widoku Django, ale nie wyłącznie). W tym celu chciałbym mieć możliwość audytu funkcji po wykonaniu - tj. Funkcja działa jak normalnie, a jeśli zwraca się bez wyjątku, wówczas dekorator rejestruje fakt.Jak mogę uruchomić dekorator Python po zakończeniu funkcji dekorowania?
Coś jak:
@audit_action(action='did something')
def do_something(*args, **kwargs):
if args[0] == 'foo':
return 'bar'
else:
return 'baz'
Gdzie audit_action
będzie działać dopiero po funkcja została zakończona.
nie masz pojęcia, jak wiele różnych kombinacjach dekorator, wrapper, func i retry, których użyłem próbując zmusić to do działania. Dziękuję nie tylko za kod, ale za wyjaśnienie. –