<分区>
Possible Duplicate:
How can I programmatically change the argspec of a function in a python decorator?
argspec 是获取函数参数的好方法,但当函数被修饰时它不起作用:
def dec(func):
@wraps(func)
def wrapper(*a, **k)
return func()
return wrapper
@dec
def f(arg1, arg2, arg3=SOME_VALUE):
return
import inspect
print inspect.argspec(f)
-----------
ArgSpec(args=[], varargs='a', keywords='k', defaults=None)
Argspec 应返回 arg1
、arg2
、arg3
。我想我需要以不同方式定义 wrapper
,以便不使用 *a
和 **k
,但我不知道如何定义。