从装饰器内的包装器返回值

时间:2014-04-07 12:01:49

标签: python return wrapper decorator

我定义了以下装饰器:

def _send(code):
    def wrapper(func):
        def wrapperIn(*args, **kwargs):
            # Do stuff
            return value
        return wrapperIn
    return wrapper

以及用它装饰的以下函数:

@_send(0)
def _getServerResponse(ID):
    pass

当调用_getServerResponse时,我需要在装饰器中将“值”作为返回变量的“值”,但即使我尝试我只实现返回“无”,就好像在包装器调用之间的某个地方丢失了值。 / p>

有没有办法实现我想做的事情?

提前致谢。

2 个答案:

答案 0 :(得分:1)

也许是你的

# Do stuff

如下所示:

value = func(*args, **kwargs)
return value

由于您的包装函数返回None,因此您将获得None :)。这只是假设,为了给出100%正确的答案,我需要更多的代码行。

答案 1 :(得分:0)

确保您的函数实际返回了某些内容并且wrapperIn函数正在返回该值。

如果您仍然感到困惑,请进入wrapperIn中的代码并查看。