2014-04-07 29 views
0

我已經定義了以下裝飾:返回值

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時,裝飾器返回的變量,但即使我嘗試我只實現返回「無」,就好像該值會在包裝器調用之間的某處丟失一樣。

有沒有一種可能的方法來實現我想要做的?

在此先感謝。

+0

你想返回'code'變量? – msvalkon

+0

你期望得到什麼回報?您的裝飾功能不會返回... – dorvak

回答

1

也許你

# Do stuff 

看起來像下面幾行:

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

由於您的包裹函數返回一個沒有,你得到無:)。這只是假設,爲了給你100%正確的答案,我確實需要更多的代碼行。

0

確保你的函數實際返回了一些東西,並且wrapperIn函數返回了這個值。

如果您仍然感到困惑,請進入wrapperIn中的代碼並查看。