使用Python的Argh库我想在使用argh.dispatch_command
发送函数时提供另一个PARSER_FORMATTER。
我试过了:
import argh
import argparse
argh.PARSER_FORMATTER = argparse.RawTextHelpFormatter
def myfunct(arg, param=None):
pass # here my working code
if __name__ == '__main__':
argh.dispatch_command(myfunct)
但是当使用--help
调用时,生成的程序仍然会冲刺
默认值。所以它似乎仍然使用Argh的CustomFormatter
而不是argparse' s RawTextHelpFormatter
我试图提供。
奇怪的是,当我使用set_default_command
并自己提供解析器时,它可以工作:
import argh
import argparse
argh.PARSER_FORMATTER = argparse.RawTextHelpFormatter
def myfunct(arg, param=None):
pass # here my working code
if __name__ == '__main__':
parser = argparse.ArgumentParser(
formatter_class=argh.PARSER_FORMATTER)
argh.set_default_command(parser, myfunct)
argh.dispatch(parser)
因此问题必须与Argh中PARSER_FORMATTER
的内部可见性相关。如何为Argh模块本身更改argh.PARSER_FORMATTER
,以便argh.dispatch_command
使用它?这个应该是可能的,还是我在错误的轨道上?