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
and **k
,但我不知道如何。