Вопрос: Возврат и печать без назначения переменной?


Любопытно, есть ли способ как для печати, так и для возврата внутри одной функции без назначения вывода переменной?

Рассмотрим этот код:

def secret_number(secret_number_range):
    return random.randrange(1, secret_number_range + 1)

Есть ли способ ссылаться на эту переменную, хранящуюся для целей инструкции return?


5


источник


Ответы:


Я думаю, что нет никакого прямого или «легкого» способа сделать это. Однако одним из способов было бы определить декоратор, который печатает это. Например:

    import random        

    def print_return(func):
        def func_wrapper(param):
            rv =   func(param)
            print("Return value: {0}".format(rv))
            return rv
        return func_wrapper

    @print_return
    def secret_number(secret_number_range):
        return random.randrange(1, secret_number_range + 1)

    # with this, this call would result in "Return value: 3" being printed.
    c=secret_number(4)

5