Argparse: add_argument with action=append appends to default
John O'Hagan
research at johnohagan.com
Wed Sep 15 23:18:56 EDT 2010
I find this surprising:
>>> import argparse
>>> parser = argparse.ArgumentParser()
>>> parser.add_argument('--test', action='append', default=['default'])
[...]
>>> parser.parse_args(['--test', 'arg'])
Namespace(test=['default', 'arg'])
As an argument is provided, I didn't expect to see the default in there as
well. From the argparse docs: "the default value is used when the option
string was not present at the command line". While it doesn't say "_only_
when...", that's what I would have expected.
Is there a reason for this behaviour? Is there a way to do what I want, to get
a list of appended options _or_ a default list (apart from setting defaults
outside the parser, a good way to lose track of things)?
Thanks,
John
More information about the Python-list
mailing list