返回并打印而不分配变量?

Blü*_*her 5 python

只是好奇是否有办法在一个函数中打印和返回而不将输出分配给变量?

考虑以下代码:

def secret_number(secret_number_range):
    return random.randrange(1, secret_number_range + 1)
Run Code Online (Sandbox Code Playgroud)

有没有办法引用为return语句存储的变量?

Mar*_*cin 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)
Run Code Online (Sandbox Code Playgroud)