装饰器内部的包装函数返回值
我定义了一个装饰器:
def _send(code):
def wrapper(func):
def wrapperIn(*args, **kwargs):
# Do stuff
return value
return wrapperIn
return wrapper
还有一个被这个装饰器装饰的函数:
@_send(0)
def _getServerResponse(ID):
pass
我希望在装饰器中获取到“value”,也就是当调用_getServerResponse时返回的变量。但是不管我怎么尝试,最终得到的结果都是“None”,就好像这个值在调用过程中丢失了一样。
有没有可能实现我想做的事情呢?
提前谢谢你。
2 个回答
0
确保你的函数实际上是有返回值的,并且 wrapperIn
函数也要返回这个值。
如果你还是不明白,可以深入看看 wrapperIn
里的代码。
1
也许你的
# Do stuff
看起来像下面这些代码:
value = func(*args, **kwargs)
return value
因为你包裹的函数返回了一个 None,所以你得到了 None :)这只是我的猜测,要给你一个百分之百正确的答案,我需要更多的代码行。