私は次のように定義されたクラスを持っています
_class M(object):
def __init__(self, **kwargs):
...do_something
_
argparse.parse_args()
の結果があります。例:
_> args = parse_args()
> print args
Namespace(value=5, message='test', message_type='email', extra="blah", param="whatever")
_
この名前空間の値(_message_type
_を除く)を渡して、クラスM
のインスタンスを作成したいと思います。私が試してみました
_M(args)
_
エラーが発生しました
_TypeError: __init__() takes exactly 1 argument (2 given)
_
わかりません。どうやって
args
のリストから値_message_type
_を削除しますM(value=5, message='test', extra="blah", param="whatever")
を直接入力するかのように値を渡します。代わりに、vars(args)
の結果を渡す必要があります。
_M(**vars(args))
_
vars()
function は、名前空間インスタンスの名前空間(その___dict__
_属性)を辞書として返します。
M.__init__()
内では、_message_type
_キーを無視してください。