2

パーサーの1つにデフォルト値が必要であり、必須でもあるargparserを構築しようとしています。これまでのところ、次のものがあります。

   fulllist_parser.add_argument(
    '--type',
    required=True,
    default="VirtualMachine",
    type=str,
    help='Object type, e.g. Network, VirtualMachine.'

CLI から実行すると、エラーが発生します。

 supdeploy fulllist: error: argument --type is required

--typeCLIに含めていないので、これがなぜ出てくるのかがわかります。そして、それが私が達成したいことです。CLI にパーサー オプションを含めなくても、デフォルトが設定されます。

とにかくこれを実行するには?

4

1 に答える 1

0

あなたはただ使う必要がdefaultあり、いいえrequired

fulllist_parser.add_argument(
  '--type',
  default="VirtualMachine",
  type=str,
  help='Object type, e.g. Network, VirtualMachine.'

指定されていない場合は、デフォルト値が返されるためです(したがって、常に値が取得されます)。ドキュメントを見てください:

add_argument() のデフォルト キーワード引数 (デフォルト値は None) は、コマンド ライン引数が存在しない場合に使用する値を指定します。オプションの引数の場合、オプション文字列がコマンド ラインに存在しなかった場合、デフォルト値が使用されます。

于 2015-10-14T12:58:05.663 に答える