Python中怎么让argparser帮助同时显示参数名和可选项

最近学习使用python中的argparse模块,发现其中添加带有choices位置参数后,在命令栏调用-h后会显示choices的选项但不显示参数名,如果用metavar指定显示参数名后,又只显示参数名而不显示choices选项,请问有什么可以同时显示两者的办法吗


```python

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('model', metavar='model', help='模型类型', choices=['SVM', 'ANN', 'CNN'])
parser.add_argument('mode', help='调用模式', choices=['Trian', 'Test'])
args = parser.parse_args()

# argparseTest.py -h
# positional arguments:
#   model         模型类型       # 只显示metavar,不显示选项
#   {Trian,Test}  调用模式      # 只显示choices,不显示参数名
#
# optional arguments:
#   -h, --help    show this help message and exit

```

使用 argparse 模块来实现这个功能,可以参考下面的例子:

import argparse

parser = argparse.ArgumentParser()
parser.add_argument("-n", "--name", help="display name")
parser.add_argument("-a", "--age", help="display age")

args = parser.parse_args()

if args.name:
    print("Hello, " + args.name)

if args.age:
    print("You are " + args.age + " years old.")

使用该代码时,可以使用 -h--help 参数来显示帮助信息,包括参数名和可选项。例如:

$ python myscript.py -h

usage: myscript.py [-h] [-n NAME] [-a AGE]

optional arguments:
  -h, --help   show this help message and exit
  -n NAME      display name
  -a AGE       display age

在使用命令行运行该脚本时,可以指定要使用的参数和可选项。例如:

$ python myscript.py -n John -a 30
Hello, John
You are 30 years old.