からの戻り値から実際に呼び出すために使用できるペアinspect.getcallargs(func)
に戻す方法はありますか?*args, **kw
func
ユースケース: デコレーターを書いていて、関数の特定の引数を名前で変更したいとします。これを行うためのコードの冒頭は次のとおりです。
@fix_x
def a(x):
print x
@fix_x
def b(**q):
print q['x']
def fix_x(func):
def wrapper(*args, **kw):
argspec = inspect.getargspec(func)
callargs = inspect.getcallargs(func, *args, **kw)
if 'x' in callargs:
callargs['x'] += 5
elif 'x' in callargs[argspec.keywords]:
callargs[argspec.keywords]['x'] += 5
# ...and now I'd like a simple way to call func with callargs...?
(私は実際には、それらを構築してからそれらを呼び出したいと思っている間に、callargs を使ってもっと手の込んだことをしていますが、これは私が探しているもののアイデアを与えるはずです。)