我想实现以下目标
float
Namespace
中的键到目前为止,我只能这样做
parser.add_argument('--exponential-decay', type=float, required=False,
help='Decay parameter for exponential decay', metavar='GAMMA')
,这导致'exponential_decay': None
出现在vars(parser.parse_args())
中。我也可以使用这些信息,但是我很好奇是否可以做到。
在argparse
文档中没有涉及此用例的任何内容。
答案 0 :(得分:2)
将默认设置为SUPPRESS
:
In [637]: parser=argparse.ArgumentParser()
In [638]: parser.add_argument('--exponential-decay', type=float,
...: help='Decay parameter for exponential decay', metavar='GAMMA',
...: default=argparse.SUPPRESS);
In [640]: parser.parse_args([])
Out[640]: Namespace()
In [641]: parser.parse_args(['--exp=12'])
Out[641]: Namespace(exponential_decay=12.0)
https://docs.python.org/3/library/argparse.html#default
提供default = argparse.SUPPRESS会导致如果不存在命令行参数,则不会添加任何属性: