Python argparse中的MetavarTypeHelpFormatter是什么意思?

时间:2018-07-31 15:03:51

标签: python argparse

parser = argparse.ArgumentParser(
prog='PROG',
formatter_class=argparse.MetavarTypeHelpFormatter)
parser.add_argument('--foo', type=int)
parser.add_argument('bar', type=float)
parser.print_help()

什么是metavar?

MetavarTypeHelpFormatter有什么作用?

在什么情况下我们使用metavar?

1 个答案:

答案 0 :(得分:0)

您忘记显示的帮助:

usage: PROG [-h] [--foo int] float

positional arguments:
  float

optional arguments:
  -h, --help  show this help message and exit
  --foo int

看到intfloat这两个字吗?它们与type参数匹配。

没有特殊formatter_class的帮助:

usage: PROG [-h] [--foo FOO] bar

positional arguments:
  bar

optional arguments:
  -h, --help  show this help message and exit
  --foo FOO

FOObar

使用显式metavar

parser.add_argument('--foo', type=int, metavar='anInt')
parser.add_argument('bar', type=float, metavar='aFloat')

usage: PROG [-h] [--foo anInt] aFloat

positional arguments:
  aFloat

optional arguments:
  -h, --help   show this help message and exit
  --foo anInt