Декораторы: совершать действия после ожидаемой функции - PullRequest
1 голос
/ 09 апреля 2020

Я использую Python 3.7 и имею следующий декоратор:

def decorator(success_check: function):
    def wrap(func):
        async def inner(root, info, **args):
            func_result = await func(root, info, **args)
            if not success_check(func_result):
                pass # do some action
            return func(root, info, **args)
        return inner
    return wrap

В текущей реализации веселье c ожидается два раза. Можно ли заставить его работать с удовольствием c, ожидаемым один раз?

1 Ответ

1 голос
/ 09 апреля 2020

если вы позвоните return await func(root, info, **args), или, что лучше, просто сделайте return func_result, скорее всего, это решит вашу проблему

...