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

时间:2015-03-05 01:04:02

标签: python

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

考虑以下代码:

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

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

1 个答案:

答案 0 :(得分: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)