This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author py.user
Recipients docs@python, py.user
Date 2016-09-07.03:04:17
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1473217458.1.0.785896151958.issue27991@psf.upfronthosting.co.za>
In-reply-to
Content
https://docs.python.org/3/howto/argparse.html#combining-positional-and-optional-arguments
"And, just like the “store_true” action, if you don’t specify the -v flag, that flag is considered to have None value."

This sentence is misleading. It supposes that "store_true" action can save None value. But "store_true" action always saves True or False value.

An example:

This code was taken from the argparse howto. I've just added the -f option and printed args to the stdout.

a.py

#!/usr/bin/env python3

import argparse

parser = argparse.ArgumentParser()
parser.add_argument("square", type=int,
                    help="display the square of a given number")
parser.add_argument("-v", "--verbosity", action="count",
                    help="increase output verbosity")
parser.add_argument("-f", "--flag", action="store_true")
args = parser.parse_args()

print('args:', args)


The output in the console:

[guest@localhost bugs]$ ./a.py 1
args: Namespace(flag=False, square=1, verbosity=None)
[guest@localhost bugs]$ 


In the output we see that the -f option have got the False value not None.

Applied a patch to the issue that just removes words about analogy with store_true action.
History
Date User Action Args
2016-09-07 03:04:18py.usersetrecipients: + py.user, docs@python
2016-09-07 03:04:18py.usersetmessageid: <1473217458.1.0.785896151958.issue27991@psf.upfronthosting.co.za>
2016-09-07 03:04:18py.userlinkissue27991 messages
2016-09-07 03:04:17py.usercreate