args
コマンドラインをargparseで解析した後に名前空間があるとしましょう。これを使用して、次のようなオブジェクトを作成します。
foo = Foo(bar=args.bar)
残念ながら、キーワード引数が設定されている場合、それを設定してはならないという制限None
があります。ここで、args.bar
が設定されているかどうかを確認し、それに応じて行動する必要があります。
if args.bar:
foo = Foo(bar=args.bar)
else:
foo = Foo()
これは扱いにくく、より多くの引数に対応できません。私がしたいのは、次のようなものです:
foo = Foo(**args.__dict__)
しかし、これはまだ私の最初の問題に悩まされており、さらにメソッドのキーワード引数ではないキーでは機能しません__init__
。これらのことを達成する良い方法はありますか?