如何让`help`与`--help`在argparse中表现一致

4 投票
2 回答
552 浏览
提问于 2025-04-17 02:45

我想让 help 这个选项的功能和 --help 一样。

附带说明: 我创建了一个程序,它的命令行使用方式和 svn 或 hg 一样。我是通过子解析器实现的。不过我想让这些功能保持一致。所以我希望 help 也能正常工作。

2 个回答

0

看起来你想把 help 定义成另一个子解析器。我觉得你可以把它链接到一个叫 print_help() 的函数,这个函数会复制你标准的 --help 输出。不过我在想,是否有办法直接调用原生的 help() 函数呢。

4

你可以通过以下方法创建一个别名,让 program help 的效果和 program --help 一样。

import argparse

def help(args):
    args.parser.print_help()

parser = argparse.ArgumentParser(description='my program')
subparsers = parser.add_subparsers()
p_help = subparsers.add_parser('help')
p_help.set_defaults(func=help, parser=parser)

args = parser.parse_args()
args.func(args)

撰写回答