1
我使用的是塊這樣的:蟒蛇裝飾失去參數定義
def served(fn) :
def wrapper(*args, **kwargs):
p = xmlrpclib.ServerProxy(SERVER, allow_none=True)
return (p.__getattr__(fn.__name__)(*args, **kwargs)) # do the function call
return functools.update_wrapper(wrapper,fn)
@served
def remote_function(a, b):
pass
包裹一系列XML-RPC的調用到一個Python模塊。 「服務」裝飾器在存根函數上被調用以公開遠程服務器上的操作。
我創建了這樣的存根,希望能夠稍後檢查它們以獲取有關函數的信息,特別是它的參數。
如上所示,上面的代碼不會將參數信息從原始函數傳遞給包裝器。如果我檢查inspect.getargspec(remote_function)
,那麼我基本上得到一個空的列表,而不是我期待的args=['a','b']
。
我猜我需要通過可選的assigned
參數給予額外方向的functools.update_wrapper()
打電話,但我不知道到底是什麼要補充的元組來獲得我想要的效果。
名稱和文檔字符串已正確傳輸到新的函數對象,但有人可以告訴我如何傳遞參數定義?
謝謝。
是的,我沒有在我的搜索中找到這些。可惜的是,沒有辦法用標準模塊來做到這一點(特別是functools)。 – 2012-07-26 19:32:37