我正在使用这样的块:
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']
。
我猜我需要通过可选的functools.update_wrapper()
参数为assigned
调用提供额外的指示,但我不确定要添加到该元组的确切内容以获得我想要的效果。
名称和文档字符串被正确地传递给新的函数对象,但有人可以告诉我如何传递参数定义吗?
感谢。