是否有一种方法可以只用一个命令填充一组参数?
例如:如果我有三个参数(-a——AGE (int), -n——NAME (str), -g——GRADE (int))
通常我会指定所有这些参数(python main.py -a __ -n __ -g __)。是否有一种方法可以使我可以运行python main.py——FOO,这将导致(例如)python main.py -a 6 -n Jim - g2运行?
您可以定义一个自定义操作(这可能涉及了解-a
,-n
和-g
的工作方式,而不是您想要的):
class ANG(argparse.Action):
def __call__(self, parser, namespace, values, option_string):
setattr(namespace, 'AGE', 6)
setattr(namespace, 'NAME', 'Jim')
setattr(namespace, 'GRADE', 2)
...
p.add_argument('--FOO', action=ANG)
据我所知,没有(简单的)方法可以使--FOO
只是将-a
,6
,-n
,Jim
,-g
和2
附加到p.parse_args
将解析的参数列表中。
还有一个问题是,您是否希望后续使用-a
,-n
和/或-g
来覆盖--FOO
。