为 nargs > 1 的单个参数编写自定义用法语句

Writing custom usage statements for a single argument with nargs > 1

我有一个 argumentParser,它当前输出的用法语句如下所示:

usage: body arm hand [-h] finger finger finger finger finger

body是主解析器,然后arm是子解析器,hand是子解析器的子解析器。 Finger 表示接受五个输入的参数。

有没有办法用内置的 argparse 函数为一个参数编写自定义用法语句?它应该看起来像:

usage: body arm hand [-h] thumb index middle ring pinky

谢谢!

元组元变量应该可以完成这项工作

In [270]: p = argparse.ArgumentParser(prog='prog')
In [271]: p.add_argument('finger', nargs=5, 
    metavar=('thumb', 'index', 'middle', 'ring', 'pinky'));
In [272]: p.print_usage()
usage: prog [-h] thumb index middle ring pinky

它必须是元组,而不是列表,并且必须与 nargs 具有相同的长度。检查 argparse 文档中的 metavar