これについては、主にgitに触発されました。これが私のアラームアプリの一部です:
parser = argparse.ArgumentParser()
group = parser.add_mutually_exclusive_group()
group.add_argument(
'--time',
metavar="HH:MM:SS",
help='time in 24 hour format separated by colon'
)
group.add_argument(
'--show',
action='store_true',
help='show the list of set alarms'
)
alarm = parser.parse_args()
if alarm.time:
writeTimeToTheDatabase()
if alarm.show:
extractTimeFromDatabase()
--
これは、両方の引数からを削除するとすぐに、この時点で非常にうまく機能します。ValueError
次のようなものを取得します。
Traceback (most recent call last):
File "./alarm.py", line 65, in <module>
help='time in 24 hour format separated by colon'
File "/usr/lib/python2.7/argparse.py", line 1295, in add_argument
return self._add_action(action)
File "/usr/lib/python2.7/argparse.py", line 1515, in _add_action
raise ValueError(msg)
ValueError: mutually exclusive arguments must be optional
相互に排他的な議論について語っていますが、トレースバックは実際の問題とはあまり関係がないと思います。