>>> def test(arg1, arg2, arg3=None): pass
>>> test.func_code.co_varnames
('arg1', 'arg2, 'arg3')
私が欲しいのは次のようなものです:
{'args': ('arg1', 'arg2'), 'kwargs': {'arg3': None}}
これを達成する方法はありますか?
>>> def test(arg1, arg2, arg3=None): pass
>>> test.func_code.co_varnames
('arg1', 'arg2, 'arg3')
私が欲しいのは次のようなものです:
{'args': ('arg1', 'arg2'), 'kwargs': {'arg3': None}}
これを達成する方法はありますか?
inspect.getargspec()
関数が期待する引数を取得するために使用できます。
>>> inspect.getargspec(test)
ArgSpec(args=['arg1', 'arg2', 'arg3'], varargs=None, keywords=None,
defaults=(None,))
ご覧のとおり、keywords
属性はNone
任意の引数を kwarg として渡すことができます。引数が存在する場合は、引数の名前が含まれます**kwargs
。
as
引数名をデフォルト値にマッピングする dict を取得するには、次のコードをによって返される ArgSpec として使用できますinspect.getargspec()
。
defaults = dict(zip(*[reversed(l) for l in (as.args, as.defaults or [])]))