argparse之argument_default,allow_abbrev,conflict_handler,add_help,exit_on_error

argument_default:一般情况下,参数默认会通过设置一个默认到 add_argument() 或者调用带一组指定键值对的 ArgumentParser.set_defaults() 方法。但是有些时候,为参数指定一个普遍适用的解析器会更有用。这能够通过传输 argument_default= 关键词参数给 ArgumentParser 来完成。举个栗子,要全局禁止在 parse_args() 中创建属性,我们提供 argument_default=SUPPRESS:

allow_abbrev:正常情况下,当你向 ArgumentParser 的 parse_args() 方法传入一个参数列表时,它会 recognizes abbreviations。这个特性可以设置 allow_abbrev 为 False 来关闭。

这两个参数都看得不太懂...

conflict_handler:ArgumentParser 对象不允许在相同选项字符串下有两种行为。默认情况下, ArgumentParser 对象会产生一个异常如果去创建一个正在使用的选项字符串参数。

>>> parser=argparse.ArgumentParser(prog='PROG')>>> parser.add_argument('-f','--foo',help='old foo help')

>>> parser.add_argument('--foo',help='new foo help')

Traceback (most recent call last): ..

ArgumentError: argument --foo: conflicting option string(s): --foo

有些时候(例如:使用 parents),重写旧的有相同选项字符串的参数会更有用。为了产生这种行为, 'resolve' 值可以提供给 ArgumentParser 的 conflict_handler= 参数:

>>> parser=argparse.ArgumentParser(prog='PROG',conflict_handler='resolve')

>>> parser.add_argument('-f','--foo',help='old foo help')

>>> parser.add_argument('--foo',help='new foo help')

>>> parser.print_help()

usage: PROG [-h] [-f FOO] [--foo FOO]

optional arguments: 

-h, --help show this help message and exit 

-f FOO old foo help 

--foo FOO new foo help

注意: ArgumentParser 对象只能移除一个行为如果它所有的选项字符串都被重写(??翻译有点儿问题)。所以,在上面的例子中,旧的 -f/--foo 行为 会和 -f 行为保持一样, 因为只有 --foo 选项字符串被重写。

add_help:默认情况下,ArgumentParser 对象添加一个简单的显示解析器帮助信息的选项(add_argument中的help参数中的信息);如果 -h or --help 在命令行中被提供, 参数解析器帮助信息会打印。有时候可能会需要关闭额外的帮助信息,可以通过在 ArgumentParser 中设置 add_help= 参数为 False 来实现。帮助选项一般为 -h/--help。如果 prefix_chars= 被指定并且没有包含 - 字符,在这种情况下, -h --help 不是有效的选项。此时,  prefix_chars  的第一个字符将用作帮助选项的前缀。prefix_chars='+/-':这样可以使用++help来打印help信息。

exit_on_error:正常情况下,当你向 ArgumentParser 的 parse_args() 方法传入一个无效的参数列表时,它将会退出并发出错误信息。如果用户想要手动捕获错误,可通过将 exit_on_error 设为 False 来启用该特性.(在我的python 3.6.3上暂无这个参数功能)

你可能感兴趣的:(argparse之argument_default,allow_abbrev,conflict_handler,add_help,exit_on_error)