Tôi muốn sử dụng một trình trang trí để xử lý việc kiểm tra các chức năng khác nhau (chủ yếu là các chức năng xem Django, nhưng không độc quyền). Để thực hiện điều này, tôi muốn có thể kiểm tra chức năng sau khi thực thi - tức là chức năng chạy như bình thường và nếu nó trả về mà không có ngoại lệ, thì trình trang trí sẽ ghi lại sự kiện.Làm cách nào để tôi có được trình trang trí Python để chạy sau khi chức năng trang trí đã hoàn thành?
Cái gì như:
@audit_action(action='did something')
def do_something(*args, **kwargs):
if args[0] == 'foo':
return 'bar'
else:
return 'baz'
đâu audit_action
sẽ chỉ chạy sau khi chức năng đã hoàn thành.
Bạn không có ý tưởng bao nhiêu kết hợp khác nhau của trang trí, wrapper, func và retvals Tôi đã sử dụng hết để có được điều này để làm việc. Cảm ơn không chỉ cho mã, nhưng để giải thích. –