蟒蛇装饰失去参数定义
问题描述:
我使用的是块这样的:蟒蛇装饰失去参数定义
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