Python argparse 中的 MetavarTypeHelpFormatter 是什么意思?

What does the MetavarTypeHelpFormatter in Python argparse mean?

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

什么是元变量?

MetavarTypeHelpFormatter 有什么作用?

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

您忘记显示的帮助:

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