Я намерен дать разные варианты поведения, которые не связаны друг с другом, если -r
is предоставляется или не предоставляется. Итак, если присутствует аргумент -r
, это займет два и только два. Если нет, он будет есть все заданные аргументы. С помощью этой установки:Argparse официальный способ отключения другой опции, если выбрана одна опция
parser = ArgumentParser(prog='frog')
parser.add_argument('integer',
metavar='integer(s)',
type=int,
nargs='*')
parser.add_argument('-r', '--range',
metavar=('start', 'end'),
type=int,
nargs=2)
, если я называю:
frog -r 123 1231 121
# this will give Namespace(integer=[123], range=[1231, 121])
, если я изменю nargs
для integer
к *
, а затем вызвать:
frog -r 123 1231
# complaints about 'integer' that is required
Конечно, это не слишком сложно создайте простые проверки args. Но, на мой вопрос, есть argparse
имеет официальный способ отключить один параметр, если активирован другой?