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