paul j3 added the comment:

A 'store_true' action takes 0 arguments.  In effect `nargs=0`.

With an `optional` (flagged) argument, the default `False` is used if the flag 
is absent, and set to `True` when the flag is encountered (its Action 
`__call__` function is run).

A `positional` is 'encountered' whenever there are enough values to meet its 
`nargs`.  With `nargs=0`, an empty list of strings, i.e. none, is enough.  Thus 
such a `positional` is always found, and its `__call__` is run, setting the 
value to `True`.

As a result, action types like 'store_true', 'store_false', 'store_const' only 
make sense with `optionals`.

And I can't think of simple way of using a 'positional' to set an Namespace 
'dest' to boolean values.  It could be done with a custom Action, but not with 
the predefined ones.  Or you could translate the values after parsing.

----------
nosy: +paul.j3

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue22500>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to