【问题标题】:argparse module - How to change help format in runtime?argparse 模块 - 如何在运行时更改帮助格式?
【发布时间】:2011-09-30 18:55:40
【问题描述】:

可以说,我有一个解析器:

self.__parser = argparse.ArgumentParser(
                            prog = '<...>',
                            fromfile_prefix_chars='@')

初始化后,我想在运行时将 argparser 中的 prog 变量更改为其他值,比如:'aaa'。

代码:

self.__parser.prog = 'aaa'

不起作用,因为 argparser 在 ts 格式化程序中的某个地方缓存了这个 prog som。 有人知道是否可以以简单的方式更改此属性?

【问题讨论】:

    标签: python runtime argparse


    【解决方案1】:

    我怀疑问题出在代码中的其他地方,因为下面的代码允许更改 prog 属性,调用 print_help 就证明了这一点:

    import argparse
    import sys
    
    class MyParser():
        def __init__(self, nm=sys.argv[0]):
            self.__parser = argparse.ArgumentParser(prog=nm, fromfile_prefix_chars='@')
        def change_prog_name(self, nm):
            self.__parser.prog = nm
        def print_help(self):
            self.__parser.print_help()
    
    my_parser = MyParser()
    my_parser.print_help()
    print 'after prog change:'
    my_parser.change_prog_name('aaa')
    my_parser.print_help()
    

    输出:

    用法:argparse_test.py [-h]

    可选参数:
    -h, --help 显示此帮助信息并退出

    程序更改后:
    用法:aaa [-h]

    可选参数:
    -h, --help 显示此帮助信息并退出

    【讨论】:

      猜你喜欢
      • 2021-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-10
      • 2011-07-24
      • 2011-05-21
      • 2021-02-09
      • 2023-02-17
      相关资源
      最近更新 更多