You can achieve this with store_const:
parser = argparse.ArgumentParser()
parser.add_argument('-a', action='store_const', const=True, default=False)
parser.add_argument('-b', action='store_const', const=True, default=False)
args = parser.parse_args()
Then you can call this from the command line either with -a -b
or with -ab
(or -a
, or -b
).
Edit: and if you want one of the flags to take an argument, you need to pass it as the last item of the chain. So if a
takes an argument, you'd need to do -bcda something